Commit aecd4fe7 authored by gaodapeng's avatar gaodapeng

修改以适配androidx版本

parent cf29174d
/build
\ No newline at end of file
apply plugin: 'com.android.library'
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
defaultConfig {
minSdkVersion 19
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation 'androidx.appcompat:appcompat:1.2.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
implementation 'com.github.bumptech.glide:glide:4.9.0'
//当需要FFmpegMediaMetadataRetriever时必选
implementation 'com.github.wseemann:FFmpegMediaMetadataRetriever-armeabi-v7a:1.0.14'
implementation 'com.wang.avi:library:2.1.3'
implementation "androidx.viewpager2:viewpager2:1.0.0"
}
\ No newline at end of file
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
\ No newline at end of file
package com.widget.imagebanner;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
assertEquals("com.widget.imagebanner.test", appContext.getPackageName());
}
}
\ No newline at end of file
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.widget.imagebanner">
/
</manifest>
\ No newline at end of file
package com.widget.imagevideobanner.bean;
package com.widget.imagebanner.bean;
import java.io.Serializable;
......
......@@ -14,7 +14,7 @@
* limitations under the License.
*/
package com.widget.imagevideobanner.banner;
package com.widget.imagebanner.event;
import android.view.KeyEvent;
......@@ -95,17 +95,17 @@ public class KeyEventCompat {
static class HoneycombKeyEventVersionImpl implements KeyEventVersionImpl {
@Override
public int normalizeMetaState(int metaState) {
return com.widget.imagevideobanner.banner.KeyEventCompatHoneycomb.normalizeMetaState(metaState);
return KeyEventCompatHoneycomb.normalizeMetaState(metaState);
}
@Override
public boolean metaStateHasModifiers(int metaState, int modifiers) {
return com.widget.imagevideobanner.banner.KeyEventCompatHoneycomb.metaStateHasModifiers(metaState, modifiers);
return KeyEventCompatHoneycomb.metaStateHasModifiers(metaState, modifiers);
}
@Override
public boolean metaStateHasNoModifiers(int metaState) {
return com.widget.imagevideobanner.banner.KeyEventCompatHoneycomb.metaStateHasNoModifiers(metaState);
return KeyEventCompatHoneycomb.metaStateHasNoModifiers(metaState);
}
}
......
......@@ -14,7 +14,7 @@
* limitations under the License.
*/
package com.widget.imagevideobanner.banner;
package com.widget.imagebanner.event;
import android.view.KeyEvent;
......
package com.widget.imagevideobanner.utils;
package com.widget.imagebanner.utils;
import android.os.Environment;
import android.text.TextUtils;
......
package com.widget.imagevideobanner.utils;
package com.widget.imagebanner.utils;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
......
package com.widget.imagevideobanner.banner;
package com.widget.imagebanner.view;
import android.graphics.Color;
import android.media.MediaPlayer;
......@@ -6,9 +6,11 @@ import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
......@@ -18,10 +20,10 @@ import android.widget.LinearLayout;
import android.widget.VideoView;
import com.bumptech.glide.Glide;
import com.widget.imagevideobanner.R;
import com.widget.imagevideobanner.bean.BannerBean;
import com.widget.imagevideobanner.utils.BannerLogFileUtils;
import com.widget.imagevideobanner.utils.BitmapUtils;
import com.widget.imagebanner.R;
import com.widget.imagebanner.bean.BannerBean;
import com.widget.imagebanner.utils.BannerLogFileUtils;
import com.widget.imagebanner.utils.BitmapUtils;
import java.io.File;
......@@ -88,10 +90,10 @@ public class ImageVideoFragment extends Fragment {
view = LayoutInflater.from(getActivity()).inflate(R.layout.item_image_view, container, false);
ImageView imageView = view.findViewById(R.id.iv);
File file = new File(bannerBean.getUrl());
if(file.exists()){
if (file.exists()) {
Glide.with(container.getContext()).load(file)
.into(imageView);
}else {
} else {
Glide.with(container.getContext()).load(bannerBean.getUrl())
.into(imageView);
}
......@@ -116,21 +118,21 @@ public class ImageVideoFragment extends Fragment {
*/
public void setPicture() {
//视频未加载完成,使用菊花
if(bannerBean.getLoadingImage() == null){
if(bannerBean.getUrl().contains("android.resource")){
ivWaitLoading.setVisibility(View.VISIBLE);
ivWaitLoading.setImageResource(R.drawable.guide_defaut);
llWaitLoading.setVisibility(View.GONE);
}else{
ivWaitLoading.setVisibility(View.GONE);
llWaitLoading.setVisibility(View.VISIBLE);
}
}else{//加载完成使用首帧图片
ivWaitLoading.setVisibility(View.VISIBLE);
ivWaitLoading.setImageBitmap(BitmapUtils.getBitmap(bannerBean.getLoadingImage()));
llWaitLoading.setVisibility(View.GONE);
}
if (bannerBean.getLoadingImage() == null) {
if (bannerBean.getUrl().contains("android.resource")) {
ivWaitLoading.setVisibility(View.VISIBLE);
ivWaitLoading.setImageResource(R.drawable.guide_defaut);
llWaitLoading.setVisibility(View.GONE);
} else {
ivWaitLoading.setVisibility(View.GONE);
llWaitLoading.setVisibility(View.VISIBLE);
}
} else {//加载完成使用首帧图片
ivWaitLoading.setVisibility(View.VISIBLE);
ivWaitLoading.setImageBitmap(BitmapUtils.getBitmap(bannerBean.getLoadingImage()));
llWaitLoading.setVisibility(View.GONE);
}
}
......@@ -142,7 +144,7 @@ public class ImageVideoFragment extends Fragment {
mVideoView.requestFocus();
try {
mVideoView.setVideoURI(Uri.parse(bannerBean.getUrl()));
}catch (Exception e){
} catch (Exception e) {
}
mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
......@@ -221,7 +223,7 @@ public class ImageVideoFragment extends Fragment {
public void startPlayer() {
if (null != mVideoView) {
// setWaitLoading();
Log.e(TAG, "startPlayer "+currentPosition);
Log.e(TAG, "startPlayer " + currentPosition);
mVideoView.setBackgroundColor(Color.TRANSPARENT);
mVideoView.seekTo(currentPosition);
mVideoView.start();
......@@ -265,8 +267,8 @@ public class ImageVideoFragment extends Fragment {
private void pausePlayer() {
if (null != mVideoView) {
Log.e(TAG, "pausePlayer 当前进度是"+mVideoView.getCurrentPosition());
mVideoView.setBackgroundColor(getResources().getColor(R.color.white));
Log.e(TAG, "pausePlayer 当前进度是" + mVideoView.getCurrentPosition());
mVideoView.setBackgroundColor(getResources().getColor(android.R.color.white));
playerPaused = true;
this.currentPosition = mVideoView.getCurrentPosition();
mVideoView.pause();
......
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.widget.imagevideobanner.banner.ViewPager
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
......@@ -14,4 +13,4 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
\ No newline at end of file
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
......@@ -10,4 +10,4 @@
android:layout_height="match_parent"
android:scaleType="fitXY"/>
</android.support.constraint.ConstraintLayout>
\ No newline at end of file
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
......@@ -27,7 +27,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:gravity="center"
android:background="@color/white"
android:background="#fff"
android:orientation="vertical">
<LinearLayout
......@@ -57,4 +57,4 @@
</LinearLayout>
</android.support.constraint.ConstraintLayout>
\ No newline at end of file
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
package com.widget.imagebanner;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() {
assertEquals(4, 2 + 2);
}
}
\ No newline at end of file
......@@ -9,6 +9,8 @@
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
android.enableJetifier=true
android.useAndroidX=true
org.gradle.jvmargs=-Xmx1536m
# When configured, Gradle will run in incubating parallel mode.
......
......@@ -4,10 +4,10 @@ android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 18
targetSdkVersion 22
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
}
buildTypes {
release {
......@@ -19,13 +19,8 @@ android {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
implementation 'com.github.bumptech.glide:glide:3.7.0'
//当需要FFmpegMediaMetadataRetriever时必选
implementation 'com.github.wseemann:FFmpegMediaMetadataRetriever-armeabi-v7a:1.0.14'
implementation 'com.wang.avi:library:2.1.3'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation project(':banner')
// compile 'com.github.wseemann:FFmpegMediaMetadataRetriever:1.0.14'
......
......@@ -3,11 +3,11 @@ package com.widget.imagevideobanner;
import android.content.Intent;
import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatActivity;
import android.util.Log;
import com.widget.imagevideobanner.banner.ImageVideoBanner;
import com.widget.imagevideobanner.bean.BannerBean;
import com.widget.imagebanner.ImageVideoBanner;
import com.widget.imagebanner.bean.BannerBean;
import java.util.ArrayList;
import java.util.List;
......
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="match_parent">
<com.widget.imagevideobanner.banner.ImageVideoBanner
<com.widget.imagebanner.ImageVideoBanner
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="0dp"
......@@ -15,4 +15,4 @@
app:period="5000" />
</android.support.constraint.ConstraintLayout>
\ No newline at end of file
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
include ':banner'
include ':imageVideoBanner'
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment