浏览代码

查看图片详情

詹子聪 5 年之前
父节点
当前提交
be4790ed40

+ 5 - 0
app/build.gradle

@@ -118,6 +118,11 @@ dependencies {
     //饺子视频播放器
     //implementation (name: 'jiaozivideoplayer-7.4.2', ext: 'aar')
     implementation 'cn.jzvd:jiaozivideoplayer:7.4.2'
+
+    // 右划销毁Activity,另外:sockeqwe/SwipeBack也可以参考
+    implementation 'com.aitangba:swipeback:1.0.3'
+    // 图片点击可以放大缩小
+    implementation 'com.github.chrisbanes:PhotoView:1.2.6'
 }
 repositories {
     mavenCentral()

+ 7 - 1
app/src/main/AndroidManifest.xml

@@ -17,7 +17,8 @@
         tools:ignore="GoogleAppIndexingWarning"
         android:requestLegacyExternalStorage="true"
         android:networkSecurityConfig="@xml/network"
-        android:name=".ui.BeiApplication">
+        android:name=".ui.BeiApplication"
+        tools:replace="android:allowBackup">
         <activity
             android:name=".ui.TabActivity"
             android:label="@string/app_name"
@@ -98,6 +99,11 @@
             android:name=".ui.home.goods.detail.GoodsDetailActivity"
             android:screenOrientation="portrait"
             android:theme="@style/TextInputStyle" />
+
+        <activity
+            android:name=".ui.home.goods.detail.MeizhiDetailActivity"
+            android:screenOrientation="portrait"
+            android:theme="@style/AppTheme.MeizhiDetail" />
     </application>
 
 </manifest>

+ 3 - 0
app/src/main/java/com/itant/shibei/ui/BeiApplication.java

@@ -2,6 +2,7 @@ package com.itant.shibei.ui;
 
 import android.app.Application;
 
+import com.aitangba.swipeback.ActivityLifecycleHelper;
 import com.itant.shibei.manager.PreferenceManager;
 import com.umeng.analytics.MobclickAgent;
 import com.umeng.commonsdk.UMConfigure;
@@ -19,6 +20,8 @@ public class BeiApplication extends Application {
     public void onCreate() {
         super.onCreate();
 
+        registerActivityLifecycleCallbacks(ActivityLifecycleHelper.build());
+
         PreferenceManager.getInstance().initPreference(this);
         RxActivityResult.register(this);
         UMConfigure.init(this, "5f35e7d9d3093221547834b6", "Umeng", UMConfigure.DEVICE_TYPE_PHONE, "");

+ 5 - 1
app/src/main/java/com/itant/shibei/ui/home/goods/detail/DetailImgAdapter.java

@@ -1,6 +1,7 @@
 package com.itant.shibei.ui.home.goods.detail;
 
 import android.content.Context;
+import android.content.Intent;
 import android.graphics.drawable.Drawable;
 import android.text.TextUtils;
 import android.widget.ImageView;
@@ -70,7 +71,10 @@ public class DetailImgAdapter extends BaseQuickAdapter<String, BaseViewHolder> {
                 });
 
         iv_detail_img.setOnClickListener(v -> {
-            // todo 跳转查看大图界面
+            // 跳转查看大图界面
+            Intent photoIntent = new Intent(mContext, MeizhiDetailActivity.class);
+            photoIntent.putExtra(MeizhiDetailActivity.TAG_URL, realUrl);
+            mContext.startActivity(photoIntent);
         });
     }
 }

+ 44 - 0
app/src/main/java/com/itant/shibei/ui/home/goods/detail/MeizhiDetailActivity.java

@@ -0,0 +1,44 @@
+package com.itant.shibei.ui.home.goods.detail;
+
+import android.os.Bundle;
+import android.text.TextUtils;
+
+import com.aitangba.swipeback.SwipeBackActivity;
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.engine.DiskCacheStrategy;
+import com.bumptech.glide.request.RequestOptions;
+import com.itant.shibei.R;
+
+import uk.co.senab.photoview.PhotoView;
+
+/**
+ * Created by 89003530 on 2017/4/19.
+ */
+
+public class MeizhiDetailActivity extends SwipeBackActivity {
+    public static final String TAG_URL = "url";
+
+    private PhotoView pv_meizhi;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_meizhi_detail);
+
+        pv_meizhi = findViewById(R.id.pv_meizhi);
+        findViewById(R.id.iv_back).setOnClickListener(v -> onBackPressed());
+
+        String url = getIntent().getStringExtra(TAG_URL);
+        if (!TextUtils.isEmpty(url)) {
+            Glide.with(this)
+                    .load(url)
+                    .apply(new RequestOptions()
+                            .placeholder(R.mipmap.ic_launcher)
+                            .error(R.mipmap.ic_launcher)
+                            .diskCacheStrategy(DiskCacheStrategy.ALL))
+                    // 缓存所有尺寸的图片
+                    //.thumbnail( 0.1f )//先加载原图大小的十分之一
+                    .into(pv_meizhi);
+        }
+    }
+}

+ 24 - 0
app/src/main/res/layout/activity_meizhi_detail.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/black"
+    android:orientation="vertical">
+
+    <ImageButton
+        android:id="@+id/iv_back"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="6dp"
+        android:layout_gravity="center_vertical"
+        android:padding="10dp"
+        android:tint="@color/white"
+        android:src="?attr/homeAsUpIndicator"
+        android:background="?attr/selectableItemBackgroundBorderless" />
+
+    <uk.co.senab.photoview.PhotoView
+        android:id="@+id/pv_meizhi"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:src="@mipmap/logo_gray" />
+</LinearLayout>

+ 12 - 0
app/src/main/res/values/styles.xml

@@ -80,4 +80,16 @@
         <item name="android:windowContentOverlay">@null</item>
         <item name="android:windowBackground">@color/colorPrimaryDark</item>
     </style>
+
+    <style name="AppTheme.MeizhiDetail">
+        <item name="colorPrimary">#000000</item>
+        <item name="colorPrimaryDark">#000000</item>
+        <item name="android:windowBackground">@android:color/transparent</item>
+        <item name="windowActionBar">false</item>
+        <item name="android:windowNoTitle">true</item>
+        <!--改变下面这个颜色可以改变返回按钮的颜色-->
+        <item name="android:textColorSecondary">#ffffff</item>
+        <!--标题字体大小-->
+        <!--<item name="android:textSize">16sp</item>-->
+    </style>
 </resources>