Parcourir la source

事件列表、水鹤列表以及地图、上报事件、上传文件、查看大图、播放视频

zhanghongrui il y a 2 semaines
Parent
commit
e4bd612b03

+ 65 - 0
app/src/main/java/com/sjkj/appthreefloor_tsgz/weight/photoview/MyImageAdapter.java

@@ -0,0 +1,65 @@
+package com.sjkj.appthreefloor_tsgz.weight.photoview;
+
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.viewpager.widget.PagerAdapter;
+
+import com.bm.library.PhotoView;
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.engine.DiskCacheStrategy;
+
+import java.util.List;
+
+public class MyImageAdapter extends PagerAdapter {
+    public static final String TAG = MyImageAdapter.class.getSimpleName();
+    private List<String> imageUrls;
+    private AppCompatActivity activity;
+
+    public MyImageAdapter(List<String> imageUrls, AppCompatActivity activity) {
+        this.imageUrls = imageUrls;
+        this.activity = activity;
+    }
+
+    @Override
+    public Object instantiateItem(ViewGroup container, int position) {
+        String url = imageUrls.get(position);
+        PhotoView photoView = new PhotoView(activity);
+        ViewGroup.LayoutParams params=new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams
+                .MATCH_PARENT);
+        Glide.with(activity)
+                .load(url).diskCacheStrategy(DiskCacheStrategy.NONE)
+                .into(photoView);
+        container.addView(photoView,params);
+        photoView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                Log.d(TAG, "onClick: ");
+                activity.finish();
+            }
+        });
+        return photoView;
+    }
+
+    @Override
+    public int getCount() {
+        return imageUrls != null ? imageUrls.size() : 0;
+    }
+
+    @Override
+    public boolean isViewFromObject(View view, Object object) {
+        return view == object;
+    }
+
+    @Override
+    public void destroyItem(ViewGroup container, int position, Object object) {
+        container.removeView((View) object);
+    }
+
+    @Override
+    public int getItemPosition(Object object) {
+        return POSITION_NONE;
+    }
+}

+ 81 - 0
app/src/main/java/com/sjkj/appthreefloor_tsgz/weight/photoview/PhotoViewActivity.java

@@ -0,0 +1,81 @@
+package com.sjkj.appthreefloor_tsgz.weight.photoview;
+
+import android.view.View;
+
+import androidx.lifecycle.ViewModelProvider;
+import androidx.viewpager.widget.ViewPager;
+
+import com.sjkj.appthreefloor_tsgz.R;
+import com.sjkj.appthreefloor_tsgz.databinding.ActivityPhotoViewBinding;
+import com.sjkj.base_lib.view.BaseActivity;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 查看大图
+ */
+public class PhotoViewActivity extends BaseActivity {
+    private ActivityPhotoViewBinding binding;
+    private  PhotoViewModel viewModel;
+    public static final String TAG = PhotoViewActivity.class.getSimpleName();
+    private int currentPosition;
+    private MyImageAdapter adapter;
+    private List<String> imageUrls;
+
+    @Override
+    protected int initLayout() {
+        return R.layout.activity_photo_view;
+    }
+
+
+    @Override
+    public void initBinding() {
+        super.initBinding();
+        binding = (ActivityPhotoViewBinding) getViewDataBinding();
+        viewModel = new ViewModelProvider(this, new ViewModelProvider.NewInstanceFactory()).get(PhotoViewModel.class);
+        binding.setViewModel(viewModel);
+        binding.setLifecycleOwner(this);
+    }
+
+    @Override
+    public void initView() {
+        super.initView();
+        imageUrls = (ArrayList<String>) getIntent().getStringArrayListExtra("positionDataList");
+        if (imageUrls != null) {
+            currentPosition = getIntent().getIntExtra("position", 0);
+            adapter = new MyImageAdapter(imageUrls, this);
+            binding.viewPager.setAdapter(adapter);
+            binding.viewPager.setCurrentItem(currentPosition, false);
+            viewModel.title.set(currentPosition + 1 + "/" + imageUrls.size());
+            binding.viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+                @Override
+                public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+                }
+
+                @Override
+                public void onPageSelected(int position) {
+                    currentPosition = position;
+                    viewModel.title.set(currentPosition + 1 + "/" + imageUrls.size());
+                }
+
+                @Override
+                public void onPageScrollStateChanged(int state) {
+
+                }
+            });
+        }
+        binding.back.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                finish();
+            }
+        });
+    }
+
+    @Override
+    public void loadData() {
+        super.loadData();
+    }
+}

+ 9 - 0
app/src/main/java/com/sjkj/appthreefloor_tsgz/weight/photoview/PhotoViewModel.java

@@ -0,0 +1,9 @@
+package com.sjkj.appthreefloor_tsgz.weight.photoview;
+
+import androidx.databinding.ObservableField;
+
+import com.sjkj.base_lib.vm.BaseViewModel;
+
+public class PhotoViewModel extends BaseViewModel {
+    public ObservableField<String> title = new ObservableField<>();
+}

+ 29 - 0
app/src/main/java/com/sjkj/appthreefloor_tsgz/weight/photoview/PhotoViewPager.java

@@ -0,0 +1,29 @@
+package com.sjkj.appthreefloor_tsgz.weight.photoview;
+
+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;
+
+public class PhotoViewPager extends ViewPager {
+    public PhotoViewPager(@NonNull Context context) {
+        super(context);
+    }
+
+    public PhotoViewPager(@NonNull Context context, @Nullable AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    @Override
+    public boolean onInterceptTouchEvent(MotionEvent ev) {
+        try {
+            return super.onInterceptTouchEvent(ev);
+        } catch (IllegalArgumentException e) {
+            e.printStackTrace();
+            return false;
+        }
+    }
+}

+ 4 - 0
app/src/main/java/com/sjkj/appthreefloor_tsgz/weight/test.java

@@ -0,0 +1,4 @@
+package com.sjkj.appthreefloor_tsgz.weight.photoview.photoview;
+
+public class test {
+}