ソースを参照

MyViewPager.java CommonPreviewPopWindow.java添加

niusongtao@dl-cg.com 5 年 前
コミット
852381e349

+ 32 - 0
base_library/src/main/java/com/mgtech/base_library/custom/MyViewPager.java

@@ -0,0 +1,32 @@
+package com.mgtech.base_library.custom;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.viewpager.widget.ViewPager;
+
+/**
+ * 因为会报多点触控的错误所有重写并try一下
+ * Android多点触控时出现pointerIndex out of range
+ */
+public class MyViewPager extends ViewPager {
+    public MyViewPager(@NonNull Context context) {
+        super(context);
+    }
+
+    public MyViewPager(@NonNull Context context, @Nullable AttributeSet attrs) {
+        super(context, attrs);
+    }
+    @Override
+    public boolean onInterceptTouchEvent(MotionEvent ev) {
+        try {
+            return super.onInterceptTouchEvent(ev);
+        } catch (IllegalArgumentException ex) {
+            ex.printStackTrace();
+        }
+        return false;
+    }
+}

+ 1 - 1
base_library/src/main/java/com/mgtech/base_library/http/common/HttpConfig.java

@@ -19,7 +19,7 @@ import com.mgtech.base_library.BuildConfig;
 public class HttpConfig {
     public static final long HTTP_TIME = 30;
 
-//    public static final String BASE_URL = "http://172.14.1.61:9400/"; //测试
+//    public static final String BASE_URL = "http://172.14.3.33:9400/"; //测试
 //    public static final String BASE_URL = "http://api.basss.pj.dl-cg.com/";//大连环境
 //    public static final String BASE_URL = "https://api.d.ulestyle.com/";//上海
 //    public static final String BASE_URL = "http://172.14.1.61:20010/";//本地

+ 161 - 0
base_library/src/main/java/com/mgtech/base_library/util/CommonPreviewPopWindow.java

@@ -0,0 +1,161 @@
+package com.mgtech.base_library.util;
+
+import android.content.Context;
+import android.graphics.Rect;
+import android.os.Build;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.LinearLayout;
+import android.widget.PopupWindow;
+
+import androidx.annotation.NonNull;
+import androidx.viewpager.widget.PagerAdapter;
+import androidx.viewpager.widget.ViewPager;
+
+import com.luck.picture.lib.photoview.PhotoView;
+import com.mgtech.base_library.R;
+import com.mgtech.base_library.custom.MyTitleView;
+import com.mgtech.base_library.custom.MyViewPager;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @ProjectName: BaseLibrary
+ * @Package: com.mgtech.base_library.custom
+ * @ClassName: CommonPreviewPopWindow
+ * @Description: 预览
+ * @Author: 牛松涛
+ * @CreateDate: 2020/6/12 16:08
+ * @UpdateUser: 更新者:
+ * @UpdateDate: 2020/6/12 16:08
+ * @UpdateRemark: 更新说明:
+ * @Version: 1.0
+ */
+public class CommonPreviewPopWindow extends PopupWindow {
+    private final View view;
+    private MyTitleView myTitleView;
+    private MyViewPager viewPager;
+    private Context context;
+    private List<View> viewList = new ArrayList<>();
+
+    private List<String> photoSelectList;
+
+    private int currPage = 1;
+
+    private PreviewAdapter previewAdapter = new PreviewAdapter();
+
+
+    public CommonPreviewPopWindow(Context context) {
+        this.context = context;
+        view = LayoutInflater.from(context).inflate(R.layout.common_preview_popupwindow,null);
+        initView();
+        initPopWindow();
+    }
+
+    public void setPhotoSelectList(int currPage,List<String> photoSelectList){
+        this.photoSelectList = photoSelectList;
+        this.currPage = currPage;
+        myTitleView.setTitleText(currPage + "/" +photoSelectList.size());
+        viewPager.setCurrentItem(currPage);
+        addView();
+    }
+
+
+    private void initView(){
+        myTitleView = view.findViewById(R.id.my_title);
+        viewPager = view.findViewById(R.id.photo_preview);
+
+        myTitleView.setLeftClick(this::popDismiss);
+        viewPager.setAdapter(previewAdapter);
+        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+            @Override
+            public void onPageScrolled(int i, float v, int i1) {
+
+            }
+
+            @Override
+            public void onPageSelected(int i) {
+                currPage = i + 1;
+                myTitleView.setTitleText(currPage + "/" +photoSelectList.size());
+            }
+
+            @Override
+            public void onPageScrollStateChanged(int i) {
+
+            }
+        });
+    }
+
+    private void addView(){
+        if (photoSelectList == null || photoSelectList.size() == 0)
+            return;
+        viewList.clear();
+        for (String image : photoSelectList){
+            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
+                    ViewGroup.LayoutParams.WRAP_CONTENT);
+            PhotoView imageView = new PhotoView(context);
+            imageView.setLayoutParams(params);
+            GlideUtil.loadThumbnailImage(image,imageView);
+            viewList.add(imageView);
+        }
+        previewAdapter.notifyDataSetChanged();
+    }
+
+    private void initPopWindow() {
+        this.setContentView(view);
+        // 设置弹出窗体的宽
+        this.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);
+        // 设置弹出窗体的高
+        this.setHeight(ViewGroup.LayoutParams.MATCH_PARENT);
+        // 设置弹出窗体可点击()
+        this.setFocusable(true);
+        this.setOutsideTouchable(true);
+        //设置SelectPicPopupWindow弹出窗体动画效果
+//        this.setAnimationStyle(R.style.base_pop_top);
+    }
+
+
+    public void popDismiss(){
+        if (isShowing())
+            dismiss();
+    }
+
+    public void showAsDropDown(View paramView) {
+        if (Build.VERSION.SDK_INT >= 24) {
+            Rect localRect = new Rect();
+            paramView.getGlobalVisibleRect(localRect);
+            setHeight(paramView.getResources().getDisplayMetrics().heightPixels - localRect.bottom);
+        }
+        super.showAsDropDown(paramView);
+    }
+
+
+
+
+    class PreviewAdapter extends PagerAdapter {
+
+        @Override
+        public int getCount() {
+            return viewList.size();
+        }
+
+        @Override
+        public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
+            return view == o;
+        }
+
+        @NonNull
+        @Override
+        public Object instantiateItem(@NonNull ViewGroup container, int position) {
+            container.addView(viewList.get(position));
+            return viewList.get(position);
+        }
+
+        @Override
+        public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
+            container.removeView(viewList.get(position));
+        }
+    }
+}

+ 23 - 0
base_library/src/main/java/com/mgtech/base_library/util/PaginationMapUtil.java

@@ -0,0 +1,23 @@
+package com.mgtech.base_library.util;
+
+import java.util.Map;
+
+/**
+ * @ProjectName: BaseLibrary
+ * @Package: com.mgtech.base_library.util
+ * @ClassName: PaginationMapUtil
+ * @Description: java类作用描述
+ * @Author: niusongtao
+ * @CreateDate: 2020/10/26 17:44
+ * @UpdateUser: 更新者:niusongtao
+ * @UpdateDate: 2020/10/26 17:44
+ * @UpdateRemark: 更新说明:
+ * @Version: 1.0
+ */
+public class PaginationMapUtil {
+
+    public static Map<String,Object> getPaginationMap(Map<String,Object> map,int page){
+        map.put("page",page);
+        return map;
+    }
+}

BIN
base_library/src/main/res/drawable-xxhdpi/base_ic_back_white.png


+ 23 - 0
base_library/src/main/res/layout/common_preview_popupwindow.xml

@@ -0,0 +1,23 @@
+<?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"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:background="@color/black"
+    android:orientation="vertical">
+
+
+    <com.mgtech.base_library.custom.MyTitleView
+        android:id="@+id/my_title"
+        app:title_bg_color="@color/black"
+        app:title_text_color="@color/white"
+        android:layout_width="match_parent"
+        app:left_image="@drawable/base_ic_back_white"
+        android:layout_height="wrap_content" />
+
+    <com.mgtech.base_library.custom.MyViewPager
+        android:id="@+id/photo_preview"
+        android:layout_gravity="center"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+</LinearLayout>