瀏覽代碼

修改图片预览页面地址

Pq 1 年之前
父節點
當前提交
2640879f31

+ 5 - 0
BaseLibrary/src/main/AndroidManifest.xml

@@ -43,5 +43,10 @@
             android:name=".ui.activity.tools.SmallToolsActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
             android:screenOrientation="portrait" />
+
+        <activity
+            android:name=".ui.activity.tools.PhotoPreviewActivity"
+            android:configChanges="orientation|screenSize|keyboardHidden"
+            android:screenOrientation="portrait" />
     </application>
 </manifest>

+ 1 - 1
BaseLibrary/src/main/java/com/cooleshow/base/router/RouterPath.kt

@@ -187,7 +187,6 @@ object RouterPath {
             const val CHAT_GROUP_NOTICE_EDIT = "/rong/imkit/activity/NoticeEditActivity"
             const val CHAT_GROUP_SET_REMARK = "/rong/imkit/activity/SetRemarksActivity"
             const val CHAT_IM_APPEAL = "/rong/imkit/activity/ImAppealActivity"
-            const val CHAT_PHOTO_PREVIEW = "/rong/imkit/activity/PhotoPreviewActivity"
             const val CHAT_GROUP_MEMBER = "/rong/imkit/activity/GroupMemberActivity"
             const val CHAT_GROUP_JOIN_APPLY = "/rong/imkit/activity/JoinGroupApplyActivity"
             const val CHAT_SELECT_CONTACT = "/rong/imkit/activity/SelectContactActivity"
@@ -201,6 +200,7 @@ object RouterPath {
             const val SCAN_QR_CODE = "/base/ui/scan/ScanActivity"
             const val USER_DETAIL_STU = "/base/ui/userInfo/StudentUserInfoDetailActivity"
             const val SMALL_TOOLS = "/base/ui/tools/SmallToolsActivity"
+            const val CHAT_PHOTO_PREVIEW = "/base/ui/tools/activity/PhotoPreviewActivity"
         }
     }
 

+ 195 - 0
BaseLibrary/src/main/java/com/cooleshow/base/ui/activity/tools/PhotoPreviewActivity.java

@@ -0,0 +1,195 @@
+package com.cooleshow.base.ui.activity.tools;
+
+import android.content.Intent;
+import android.content.res.Configuration;
+import android.os.Bundle;
+import android.os.Parcelable;
+import android.view.KeyEvent;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.alibaba.android.arouter.facade.annotation.Route;
+import com.cooleshow.base.R;
+import com.cooleshow.base.constanst.StyleConfig;
+import com.cooleshow.base.databinding.ActivityPhotoPreviewBinding;
+import com.cooleshow.base.router.RouterPath;
+import com.cooleshow.base.ui.activity.BaseActivity;
+import com.cooleshow.base.ui.activity.BaseMVPActivity;
+import com.cooleshow.base.utils.GlideUtils;
+import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
+import com.luck.picture.lib.entity.LocalMedia;
+import com.luck.picture.lib.photoview.PhotoView;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.viewpager.widget.PagerAdapter;
+import androidx.viewpager.widget.ViewPager;
+
+/**
+ * 创建日期:2022/6/13 14:30
+ *
+ * @author Ryan
+ * 类说明:
+ */
+@Route(path = RouterPath.BaseCenter.CHAT_PHOTO_PREVIEW)
+public class PhotoPreviewActivity extends BaseActivity<ActivityPhotoPreviewBinding> implements View.OnClickListener {
+    @Override
+    public void onClick(View v) {
+
+    }
+    private TextView tv_title;
+    ViewPager viewpager;
+    private boolean isRemove;
+    private List<LocalMedia> selectList;
+    private int selectedPosition = 0;
+    private PhotoPreviewListAdapter adapter;
+
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        QMUIStatusBarHelper.setStatusBarLightMode(this);
+    }
+
+    @Override
+    protected void initView() {
+        selectList = getIntent().getParcelableArrayListExtra("list");
+        selectedPosition = getIntent().getIntExtra("position", 0);
+        isRemove = getIntent().getBooleanExtra("isRemove", true);
+        if (selectList == null) {
+            selectList = new ArrayList<>();
+            selectedPosition = 0;
+        }
+        initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "");
+        tv_title= viewBinding.toolbarInclude.title;
+        tv_title.setText((selectedPosition + 1) + "/" + selectList.size());
+        adapter = new PhotoPreviewListAdapter();
+        viewpager=viewBinding.viewpager;
+        viewpager.setAdapter(adapter);
+        viewpager.setCurrentItem(selectedPosition);
+        viewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+            @Override
+            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+            }
+
+            @Override
+            public void onPageSelected(int position) {
+                selectedPosition = position;
+                tv_title.setText((position + 1) + "/" + selectList.size());
+            }
+
+            @Override
+            public void onPageScrollStateChanged(int state) {
+
+            }
+        });
+
+        if (isRemove) {
+            viewBinding.toolbarInclude.tvRight.setVisibility(View.VISIBLE);
+            viewBinding.toolbarInclude.tvRight.setBackgroundResource(com.cooleshow.base.R.drawable.ic_delete);
+            viewBinding.toolbarInclude.tvRight.setOnClickListener(view -> {
+                if (selectList.size() > 0) {
+                    if (selectedPosition > selectList.size() - 1) {
+                        selectedPosition -= 1;
+                    }
+                    selectList.remove(selectedPosition);
+                    if (selectList.size() == 0) {
+                        initResult();
+                        return;
+                    }
+                    adapter = null;
+                    adapter = new PhotoPreviewListAdapter();
+                    viewpager.setAdapter(adapter);
+                    if (selectedPosition == selectList.size()) {
+                        viewpager.setCurrentItem(0);
+                        tv_title.setText("1/" + selectList.size());
+                    } else {
+                        viewpager.setCurrentItem(selectedPosition);
+                    }
+                    if (selectedPosition == 0) {
+                        tv_title.setText("1/" + selectList.size());
+                    }
+
+                }
+            });
+        }
+    }
+
+    @Override
+    protected ActivityPhotoPreviewBinding getLayoutView() {
+        return ActivityPhotoPreviewBinding.inflate(getLayoutInflater());
+    }
+
+    @Override
+    public void onBackPressed() {
+        initResult();
+    }
+
+    private void initResult() {
+        Intent intent = new Intent();
+        intent.putParcelableArrayListExtra("list", (ArrayList<? extends Parcelable>) selectList);
+        setResult(RESULT_OK, intent);
+        finish();
+    }
+    /**
+     * 需要拦截press的事件
+     *
+     * @param keyCode
+     * @param event
+     * @return
+     */
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        if (keyCode == KeyEvent.KEYCODE_BACK) {
+            initResult();
+            return true;
+        } else {
+            return super.onKeyDown(keyCode, event);
+        }
+
+    }
+
+    public class PhotoPreviewListAdapter extends PagerAdapter {
+
+        @Override
+        public int getCount() {
+            return selectList.size();
+        }
+
+        @Override
+        public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
+            return view == object;
+        }
+
+        @Override
+        public Object instantiateItem(ViewGroup container, int position) {
+            View inflater = LayoutInflater.from(PhotoPreviewActivity.this).inflate(R.layout.photo_preview_list_item, null);
+            PhotoView ivIcon = inflater.findViewById(R.id.iv_icon);
+            GlideUtils.INSTANCE.loadImage(PhotoPreviewActivity.this,selectList.get(position).getPath(),ivIcon);
+            container.addView(inflater);
+            return inflater;
+
+
+        }
+
+        @Override
+        public void destroyItem(ViewGroup container, int position, Object object) {
+            container.removeView((View) object);
+        }
+
+    }
+
+    @Override
+    public void onConfigurationChanged(Configuration newConfig) {
+        super.onConfigurationChanged(newConfig);
+        adapter = new PhotoPreviewListAdapter();
+        viewpager.setAdapter(adapter);
+    }
+
+
+}

+ 0 - 12
BaseLibrary/src/main/java/com/cooleshow/base/utils/JumpUtils.java

@@ -188,16 +188,4 @@ public class JumpUtils {
                 .navigation();
     }
 
-    public static void startPhotoPreview(Activity context, ArrayList<? extends Parcelable> list, int position, int requestCode) {
-        if (context == null || list == null || list.size() == 0) {
-            return;
-        }
-        Intent intent = new Intent();
-        intent.setAction("com.cooleshow.chatmodule.ui.PhotoPreviewActivity");
-        if (position != -1) {
-            intent.putExtra("position", position);
-        }
-        intent.putParcelableArrayListExtra("list", list);
-        context.startActivityForResult(intent, requestCode);
-    }
 }

+ 17 - 0
BaseLibrary/src/main/res/layout/activity_photo_preview.xml

@@ -0,0 +1,17 @@
+<?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">
+
+    <include
+        android:id="@+id/toolbar_include"
+        layout="@layout/common_toolbar_layout" />
+
+    <androidx.viewpager.widget.ViewPager
+        android:id="@+id/viewpager"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+</LinearLayout>

+ 12 - 0
BaseLibrary/src/main/res/layout/photo_preview_list_item.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <com.luck.picture.lib.photoview.PhotoView
+        android:id="@+id/iv_icon"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:scaleType="centerInside" />
+</FrameLayout>

+ 1 - 1
rong_im/common_im_ui/src/main/java/com/common/im/ui/activity/PhotoPreviewActivity.java

@@ -36,7 +36,7 @@ import java.util.List;
  * @author Ryan
  * 类说明:
  */
-@Route(path = RouterPath.ChatCenter.CHAT_PHOTO_PREVIEW)
+@Deprecated
 public class PhotoPreviewActivity extends BaseMVPActivity<ActivityPhotoPreviewBinding, PhotoPreviewPresenter> implements PhotoPreviewContract.PhotoPreviewView, View.OnClickListener {
     @Override
     public void onClick(View v) {

+ 1 - 1
usercenter/src/main/java/com/cooleshow/usercenter/adapter/FeedBackRecordAdapter.java

@@ -100,7 +100,7 @@ public class FeedBackRecordAdapter extends BaseQuickAdapter<FeedBackRecordListBe
                         localMedia.setPath(imgUrl);
                         list.add(localMedia);
                     }
-                    ARouter.getInstance().build(RouterPath.ChatCenter.CHAT_PHOTO_PREVIEW)
+                    ARouter.getInstance().build(RouterPath.BaseCenter.CHAT_PHOTO_PREVIEW)
                             .withParcelableArrayList("list", list)
                             .withInt("position", position)
                             .withBoolean("isRemove", false)

+ 7 - 4
usercenter/src/main/java/com/cooleshow/usercenter/ui/activity/setting/FeedBackActivity.java

@@ -132,9 +132,9 @@ public class FeedBackActivity extends BaseMVPActivity<ActivityFeedbackLayoutBind
         viewBinding.csType.setOnClickListener(this);
         mPhotoListAdapter = new FeedBackAddPhotoListAdapter();
         RecyclerView.LayoutManager layoutManager;
-        if(QMUIDeviceHelper.isTablet(getApplicationContext())){
-            layoutManager =new LinearLayoutManager(this, RecyclerView.HORIZONTAL,false);
-        }else{
+        if (QMUIDeviceHelper.isTablet(getApplicationContext())) {
+            layoutManager = new LinearLayoutManager(this, RecyclerView.HORIZONTAL, false);
+        } else {
             layoutManager = new GridLayoutManager(this, 4);
         }
         viewBinding.recyclerView.setLayoutManager(layoutManager);
@@ -166,7 +166,10 @@ public class FeedBackActivity extends BaseMVPActivity<ActivityFeedbackLayoutBind
                 if (item.getPath().equals("123")) {
                     toSelectPic();
                 } else {
-                    JumpUtils.startPhotoPreview(FeedBackActivity.this,getImages(),position,100);
+                    ARouter.getInstance().build(RouterPath.BaseCenter.CHAT_PHOTO_PREVIEW)
+                            .withInt("position", position)
+                            .withParcelableArrayList("list", (ArrayList<? extends Parcelable>) getImages())
+                            .navigation(FeedBackActivity.this, 100);
                 }
             }
         });