Commit 416cacce4590eca08949461cd6a3a6c03fc39899

Authored by 韩亚云
1 parent dffd5cf2

全屏预览页面简单跳转

app/strike/src/main/java/com/cnlive/strike/imgutil/ImgActivity.java
@@ -11,11 +11,13 @@ import android.os.Message; @@ -11,11 +11,13 @@ import android.os.Message;
11 import android.view.View; 11 import android.view.View;
12 import android.widget.ImageView; 12 import android.widget.ImageView;
13 13
  14 +import com.alibaba.android.arouter.launcher.ARouter;
14 import com.bumptech.glide.Glide; 15 import com.bumptech.glide.Glide;
15 import com.bumptech.glide.load.DecodeFormat; 16 import com.bumptech.glide.load.DecodeFormat;
16 import com.bumptech.glide.load.engine.DiskCacheStrategy; 17 import com.bumptech.glide.load.engine.DiskCacheStrategy;
17 import com.bumptech.glide.request.RequestOptions; 18 import com.bumptech.glide.request.RequestOptions;
18 import com.bumptech.glide.request.transition.ViewPropertyTransition; 19 import com.bumptech.glide.request.transition.ViewPropertyTransition;
  20 +import com.cnlive.core.activity.PreviewImageActivity;
19 import com.cnlive.core.imageload.callback.ImageDownLoadCallBack; 21 import com.cnlive.core.imageload.callback.ImageDownLoadCallBack;
20 import com.cnlive.core.imageload.config.PriorityMode; 22 import com.cnlive.core.imageload.config.PriorityMode;
21 import com.cnlive.core.imageload.config.ScaleMode; 23 import com.cnlive.core.imageload.config.ScaleMode;
@@ -28,6 +30,7 @@ import com.cnlive.cloud.R; @@ -28,6 +30,7 @@ import com.cnlive.cloud.R;
28 import com.cnlive.cloud.user.auth.UserService; 30 import com.cnlive.cloud.user.auth.UserService;
29 31
30 import java.util.ArrayList; 32 import java.util.ArrayList;
  33 +import java.util.List;
31 34
32 public class ImgActivity extends AppCompatActivity { 35 public class ImgActivity extends AppCompatActivity {
33 36
@@ -88,6 +91,16 @@ public class ImgActivity extends AppCompatActivity { @@ -88,6 +91,16 @@ public class ImgActivity extends AppCompatActivity {
88 iv_test11 = findViewById(R.id.iv_test11); 91 iv_test11 = findViewById(R.id.iv_test11);
89 92
90 findViewById(R.id.simpla_see).setOnClickListener(view -> startActivity(new Intent(this,SimplePrevActivity.class))); 93 findViewById(R.id.simpla_see).setOnClickListener(view -> startActivity(new Intent(this,SimplePrevActivity.class)));
  94 + findViewById(R.id.pre_btn).setOnClickListener(view -> {
  95 + ArrayList<String> list = new ArrayList<>();
  96 + list.add("https://b-ssl.duitang.com/uploads/item/201505/09/20150509221719_kyNrM.jpeg");
  97 + list.add("https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1035013881,3985887911&fm=26&gp=0.gif");
  98 + list.add("https://b-ssl.duitang.com/uploads/item/201505/11/20150511122951_MAwVZ.jpeg");
  99 + list.add("https://b-ssl.duitang.com/uploads/item/201704/23/20170423205828_BhNSv.jpeg");
  100 + ARouter.getInstance().build("/preview/PreviewImageActivity")
  101 + .withStringArrayList("paths", list)
  102 + .navigation(this);
  103 + });
91 } 104 }
92 105
93 106
app/strike/src/main/java/com/cnlive/strike/imgutil/SimplePrevActivity.java
@@ -18,7 +18,6 @@ import com.cnlive.core.imagepreview.PhotoLoader; @@ -18,7 +18,6 @@ import com.cnlive.core.imagepreview.PhotoLoader;
18 import com.cnlive.core.imagepreview.ViewerStatus; 18 import com.cnlive.core.imagepreview.ViewerStatus;
19 import com.cnlive.core.imagepreview.listener.OnBrowseStatusListener; 19 import com.cnlive.core.imagepreview.listener.OnBrowseStatusListener;
20 import com.cnlive.core.libs.base.frame.activity.BaseActivity; 20 import com.cnlive.core.libs.base.frame.activity.BaseActivity;
21 -import com.cnlive.core.libs.base.util.GlideUtil;  
22 21
23 import java.util.ArrayList; 22 import java.util.ArrayList;
24 import java.util.List; 23 import java.util.List;
@@ -89,7 +88,7 @@ public class SimplePrevActivity extends BaseActivity { @@ -89,7 +88,7 @@ public class SimplePrevActivity extends BaseActivity {
89 public void onBrowseStatus(int status) { 88 public void onBrowseStatus(int status) {
90 //可以根据状态去设置状态栏颜色 89 //可以根据状态去设置状态栏颜色
91 if(status == ViewerStatus.STATUS_BEGIN_OPEN){ 90 if(status == ViewerStatus.STATUS_BEGIN_OPEN){
92 - 91 + setStatusBarColor(R.color.black,0);
93 }else if(status == ViewerStatus.STATUS_SILENCE){ 92 }else if(status == ViewerStatus.STATUS_SILENCE){
94 93
95 } 94 }
app/strike/src/main/res/layout/activity_img.xml
@@ -14,7 +14,13 @@ @@ -14,7 +14,13 @@
14 android:id="@+id/simpla_see" 14 android:id="@+id/simpla_see"
15 android:layout_width="wrap_content" 15 android:layout_width="wrap_content"
16 android:layout_height="wrap_content" 16 android:layout_height="wrap_content"
17 - android:text="简单预览" /> 17 + android:text="网格展示以及预览" />
  18 +
  19 + <Button
  20 + android:id="@+id/pre_btn"
  21 + android:layout_width="wrap_content"
  22 + android:layout_height="wrap_content"
  23 + android:text="全屏预览" />
18 24
19 <TextView 25 <TextView
20 android:layout_width="wrap_content" 26 android:layout_width="wrap_content"
core/imageload/build.gradle
@@ -28,6 +28,7 @@ dependencies { @@ -28,6 +28,7 @@ dependencies {
28 implementation fileTree(dir: 'libs', include: ['*.jar']) 28 implementation fileTree(dir: 'libs', include: ['*.jar'])
29 implementation 'cn.bertsir.zbarLibary:zbarlibary:1.3.3' 29 implementation 'cn.bertsir.zbarLibary:zbarlibary:1.3.3'
30 implementation 'com.cnlive.libs:largeimage:1.0.1' 30 implementation 'com.cnlive.libs:largeimage:1.0.1'
  31 + implementation 'com.github.chrisbanes:PhotoView:2.1.4'
31 implementation "com.cnlive.libs:mediapicker:$rootProject.libMediaPicker" 32 implementation "com.cnlive.libs:mediapicker:$rootProject.libMediaPicker"
32 implementation project(path: ':cloud:user') 33 implementation project(path: ':cloud:user')
33 implementation project(path: ':core:app_qr') 34 implementation project(path: ':core:app_qr')
core/imageload/src/main/AndroidManifest.xml
@@ -3,23 +3,25 @@ @@ -3,23 +3,25 @@
3 package="com.cnlive.core.imageload"> 3 package="com.cnlive.core.imageload">
4 4
5 <application> 5 <application>
  6 + <activity android:name="com.cnlive.core.activity.PreviewImageActivity"></activity>
6 <activity 7 <activity
7 - android:name=".preview.PreviewImageViewActivity"  
8 - android:configChanges="keyboardHidden|screenSize|smallestScreenSize|screenLayout|orientation"  
9 - android:launchMode="singleTop"  
10 - android:theme="@style/Theme.AppCompat.NoActionBar"/>  
11 - <activity  
12 - android:name=".preview.DataProcessingActivity"  
13 - android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"  
14 - android:launchMode="singleTop"  
15 - android:theme="@style/ProcessHtmlDialogActivityTheme">  
16 - <intent-filter>  
17 - <action android:name="com.cnlive.strike.moudle.preview.ui.DataProcessingActivity" />  
18 - <category android:name="android.intent.category.DEFAULT" />  
19 - <!-- 文字类型 -->  
20 - <data android:mimeType="text/plain" />  
21 - </intent-filter>  
22 - </activity> 8 + android:name=".preview.PreviewImageViewActivity"
  9 + android:configChanges="keyboardHidden|screenSize|smallestScreenSize|screenLayout|orientation"
  10 + android:launchMode="singleTop"
  11 + android:theme="@style/Theme.AppCompat.NoActionBar" />
  12 + <activity
  13 + android:name=".preview.DataProcessingActivity"
  14 + android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
  15 + android:launchMode="singleTop"
  16 + android:theme="@style/ProcessHtmlDialogActivityTheme">
  17 + <intent-filter>
  18 + <action android:name="com.cnlive.strike.moudle.preview.ui.DataProcessingActivity" />
  19 +
  20 + <category android:name="android.intent.category.DEFAULT" />
  21 + <!-- 文字类型 -->
  22 + <data android:mimeType="text/plain" />
  23 + </intent-filter>
  24 + </activity>
23 </application> 25 </application>
24 26
25 </manifest> 27 </manifest>
26 \ No newline at end of file 28 \ No newline at end of file
core/imageload/src/main/java/com/cnlive/core/activity/PreviewImageActivity.java 0 → 100644
  1 +package com.cnlive.core.activity;
  2 +
  3 +import android.widget.ImageView;
  4 +
  5 +import com.alibaba.android.arouter.facade.annotation.Route;
  6 +import com.cnlive.core.imageload.R;
  7 +import com.cnlive.core.imagepreview.ImagePreView;
  8 +import com.cnlive.core.imagepreview.PhotoLoader;
  9 +import com.cnlive.core.imagepreview.listener.OnItemClickListener;
  10 +import com.cnlive.core.libs.base.frame.activity.BaseActivity;
  11 +
  12 +import java.util.ArrayList;
  13 +import java.util.Arrays;
  14 +import java.util.List;
  15 +
  16 +@Route(path = "/preview/PreviewImageActivity")
  17 +public class PreviewImageActivity extends BaseActivity {
  18 +
  19 + private ImagePreView preView;
  20 + private List<String> list = new ArrayList<>();
  21 +
  22 +
  23 + @Override
  24 + protected int getViewLayoutId() {
  25 + return R.layout.activity_preview_image;
  26 + }
  27 +
  28 + @Override
  29 + protected void initView() {
  30 + preView = findViewById(R.id.image_pre);
  31 + //设置为黑色预览
  32 + setStatusBarColor(R.color.black,0);
  33 +
  34 + list = getIntent().getStringArrayListExtra("paths");
  35 +
  36 +
  37 +// list.add("https://b-ssl.duitang.com/uploads/item/201706/30/20170630181644_j4mh5.jpeg");
  38 + preView.overlayStatusBar(false)
  39 + .imageData(list)
  40 + .imageLoader(new PhotoLoader());
  41 +
  42 + preView.watch(0);
  43 + preView.setOnItemClickListener(new OnItemClickListener() {
  44 + @Override
  45 + public boolean onItemClick(int position, ImageView imageView) {
  46 + finish();
  47 + return false;
  48 + }
  49 + });
  50 +
  51 +// preView.getCurrentItem().getImageView().setOnClickListener(view -> finish());
  52 + }
  53 +}
core/imageload/src/main/java/com/cnlive/core/imagepreview/ImageDrawee.java
@@ -8,9 +8,9 @@ import android.widget.FrameLayout; @@ -8,9 +8,9 @@ import android.widget.FrameLayout;
8 import android.widget.ImageView; 8 import android.widget.ImageView;
9 9
10 import com.cnlive.core.imagepreview.indexui.ProgressUI; 10 import com.cnlive.core.imagepreview.indexui.ProgressUI;
  11 +import com.github.chrisbanes.photoview.PhotoView;
11 12
12 import androidx.annotation.NonNull; 13 import androidx.annotation.NonNull;
13 -import uk.co.senab.photoview.PhotoView;  
14 14
15 /** 15 /**
16 * created by hanyayun 16 * created by hanyayun
@@ -95,6 +95,17 @@ public class ImageDrawee extends FrameLayout { @@ -95,6 +95,17 @@ public class ImageDrawee extends FrameLayout {
95 if (obj == null) { 95 if (obj == null) {
96 return; 96 return;
97 } 97 }
  98 +
  99 +// if (obj instanceof Drawable || obj instanceof Bitmap || obj instanceof Integer || obj instanceof String) {
  100 +// ImageLoader.with(getContext())
  101 +// .url((String) obj)
  102 +// .scale(ScaleMode.CENTER_CROP)
  103 +// .into(imageView);
  104 +//// Glide.with(getContext()).load(obj).into(imageView);
  105 +// } else {
  106 +// Log.e("ImageDrawee", "Unable to identify picture resources.");
  107 +// }
  108 +
98 if (obj instanceof Drawable) { 109 if (obj instanceof Drawable) {
99 imageView.setImageDrawable((Drawable) obj); 110 imageView.setImageDrawable((Drawable) obj);
100 } else if (obj instanceof Bitmap) { 111 } else if (obj instanceof Bitmap) {
core/imageload/src/main/java/com/cnlive/core/imagepreview/ImagePreView.java
@@ -622,10 +622,7 @@ public class ImagePreView extends FrameLayout implements ViewPager.OnPageChangeL @@ -622,10 +622,7 @@ public class ImagePreView extends FrameLayout implements ViewPager.OnPageChangeL
622 return mViewStatus; 622 return mViewStatus;
623 } 623 }
624 624
625 - ////////////////////////////////////////////////////////////////////////////////////////////////  
626 - //// 拖拽相关  
627 - ////////////////////////////////////////////////////////////////////////////////////////////////  
628 - 625 + // 拖拽相关
629 @Override 626 @Override
630 public boolean onInterceptTouchEvent(MotionEvent ev) { 627 public boolean onInterceptTouchEvent(MotionEvent ev) {
631 boolean isIntercept = super.onInterceptTouchEvent(ev); 628 boolean isIntercept = super.onInterceptTouchEvent(ev);
core/imageload/src/main/java/com/cnlive/core/imagepreview/indexui/DefaultIndexUI.java
@@ -29,9 +29,10 @@ public class DefaultIndexUI extends IndexUI { @@ -29,9 +29,10 @@ public class DefaultIndexUI extends IndexUI {
29 FrameLayout.LayoutParams.WRAP_CONTENT, 29 FrameLayout.LayoutParams.WRAP_CONTENT,
30 FrameLayout.LayoutParams.WRAP_CONTENT); 30 FrameLayout.LayoutParams.WRAP_CONTENT);
31 textParams.setMargins(0, 31 textParams.setMargins(0,
32 - Utils.dp2px(context, overlayStatusBar ? Utils.getStatusBarHeight(context) + 5 : 5),  
33 - 0, 0);  
34 - textParams.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL; 32 +// Utils.dp2px(context, overlayStatusBar ? Utils.getStatusBarHeight(context) + 5 : 5),
  33 + 0, 0, Utils.dp2px(context,20));
  34 + //改变索引位置
  35 + textParams.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL;
35 indexView.setLayoutParams(textParams); 36 indexView.setLayoutParams(textParams);
36 indexView.setIncludeFontPadding(false); 37 indexView.setIncludeFontPadding(false);
37 indexView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16); 38 indexView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
@@ -41,11 +42,11 @@ public class DefaultIndexUI extends IndexUI { @@ -41,11 +42,11 @@ public class DefaultIndexUI extends IndexUI {
41 42
42 @Override 43 @Override
43 public void init(int position, int length) { 44 public void init(int position, int length) {
44 - ((TextView) getIndexView()).setText((position + 1) + "/" + length); 45 + ((TextView) getIndexView()).setText((position + 1) + " / " + length);
45 } 46 }
46 47
47 @Override 48 @Override
48 public void handleItemChanged(int position, int length) { 49 public void handleItemChanged(int position, int length) {
49 - ((TextView) getIndexView()).setText((position + 1) + "/" + length); 50 + ((TextView) getIndexView()).setText((position + 1) + " / " + length);
50 } 51 }
51 } 52 }
core/imageload/src/main/res/layout/activity_preview_image.xml 0 → 100644
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3 + xmlns:app="http://schemas.android.com/apk/res-auto"
  4 + xmlns:tools="http://schemas.android.com/tools"
  5 + android:layout_width="match_parent"
  6 + android:layout_height="match_parent"
  7 + tools:context="com.cnlive.core.activity.PreviewImageActivity">
  8 +
  9 + <com.cnlive.core.imagepreview.ImagePreView
  10 + android:id="@+id/image_pre"
  11 + android:layout_width="match_parent"
  12 + android:layout_height="wrap_content"/>
  13 +
  14 +</LinearLayout>