diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/app/build.gradle b/app/build.gradle
index 045dd9e..1cc4d59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,7 +52,7 @@
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//图片加载框架
- implementation 'com.github.bumptech.glide:glide:4.5.0'
+ implementation 'com.github.bumptech.glide:glide:4.7.1'
//MVP网络请求框架retrofit2+rxjava
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -71,10 +71,10 @@
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
implementation 'com.github.huangyanbin:SmartTable:1.7.1'
- implementation 'com.getui:gtsdk:3.1.4.0'
//个推SDK
- implementation 'com.getui:gtc:3.1.0.0'
+ implementation 'com.getui:gtsdk:3.1.4.0'
//个推核心组件
+ implementation 'com.getui:gtc:3.1.0.0'
//数据库框架
implementation 'org.greenrobot:greendao:3.3.0'
//沉浸式状态栏。基础依赖包,必须要依赖
diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/app/build.gradle b/app/build.gradle
index 045dd9e..1cc4d59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,7 +52,7 @@
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//图片加载框架
- implementation 'com.github.bumptech.glide:glide:4.5.0'
+ implementation 'com.github.bumptech.glide:glide:4.7.1'
//MVP网络请求框架retrofit2+rxjava
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -71,10 +71,10 @@
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
implementation 'com.github.huangyanbin:SmartTable:1.7.1'
- implementation 'com.getui:gtsdk:3.1.4.0'
//个推SDK
- implementation 'com.getui:gtc:3.1.0.0'
+ implementation 'com.getui:gtsdk:3.1.4.0'
//个推核心组件
+ implementation 'com.getui:gtc:3.1.0.0'
//数据库框架
implementation 'org.greenrobot:greendao:3.3.0'
//沉浸式状态栏。基础依赖包,必须要依赖
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 25931cd..92c60e5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -76,6 +76,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
urls = getIntent().getStringArrayListExtra("images");
+ if (urls == null || urls.size() == 0) {
+ return;
+ }
+ pageNumberView.setText("(" + (index + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ imagePagerView.setAdapter(new BigImageAdapter(this, urls));
+ imagePagerView.setCurrentItem(index);
+ imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
+ imagePagerView.setPageMargin(10);//控制两幅图之间的间距
+ imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
+ imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ pageNumberView.setText("(" + (position + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+
+ static class BigImageAdapter extends PagerAdapter {
+
+ private Context context;
+ private List data;
+
+ BigImageAdapter(@NotNull Context context, @NotNull List imageList) {
+ this.context = context;
+ this.data = imageList;
+ }
+
+ @Override
+ public int getCount() {
+ return data.size();
+ }
+
+ @Override
+ public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
+ return view == object;
+ }
+
+ @NotNull
+ @Override
+ public Object instantiateItem(@NotNull ViewGroup container, int position) {
+ View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
+ PhotoView photoView = view.findViewById(R.id.photoView);
+ Glide.with(context).load(data.get(position)).into(photoView);
+ photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ container.addView(view);
+ return view;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
+ container.removeView((View) object);
+ }
+ }
+
+ //设置切换动画
+ public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
+ //自由控制缩放比例
+ private static final float MAX_SCALE = 1f;
+ private static final float MIN_SCALE = 0.85f;//0.85f
+
+ @Override
+ public void transformPage(@NotNull View page, float position) {
+
+ if (position <= 1) {
+ float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
+ page.setScaleX(scaleFactor);
+ if (position > 0) {
+ page.setTranslationX(-scaleFactor * 2);
+ } else if (position < 0) {
+ page.setTranslationX(scaleFactor * 2);
+ }
+ page.setScaleY(scaleFactor);
+ } else {
+ page.setScaleX(MIN_SCALE);
+ page.setScaleY(MIN_SCALE);
+ }
+ }
+ }
+}
diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/app/build.gradle b/app/build.gradle
index 045dd9e..1cc4d59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,7 +52,7 @@
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//图片加载框架
- implementation 'com.github.bumptech.glide:glide:4.5.0'
+ implementation 'com.github.bumptech.glide:glide:4.7.1'
//MVP网络请求框架retrofit2+rxjava
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -71,10 +71,10 @@
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
implementation 'com.github.huangyanbin:SmartTable:1.7.1'
- implementation 'com.getui:gtsdk:3.1.4.0'
//个推SDK
- implementation 'com.getui:gtc:3.1.0.0'
+ implementation 'com.getui:gtsdk:3.1.4.0'
//个推核心组件
+ implementation 'com.getui:gtc:3.1.0.0'
//数据库框架
implementation 'org.greenrobot:greendao:3.3.0'
//沉浸式状态栏。基础依赖包,必须要依赖
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 25931cd..92c60e5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -76,6 +76,7 @@
+
+
+
+
+
+
urls = getIntent().getStringArrayListExtra("images");
+ if (urls == null || urls.size() == 0) {
+ return;
+ }
+ pageNumberView.setText("(" + (index + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ imagePagerView.setAdapter(new BigImageAdapter(this, urls));
+ imagePagerView.setCurrentItem(index);
+ imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
+ imagePagerView.setPageMargin(10);//控制两幅图之间的间距
+ imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
+ imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ pageNumberView.setText("(" + (position + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+
+ static class BigImageAdapter extends PagerAdapter {
+
+ private Context context;
+ private List data;
+
+ BigImageAdapter(@NotNull Context context, @NotNull List imageList) {
+ this.context = context;
+ this.data = imageList;
+ }
+
+ @Override
+ public int getCount() {
+ return data.size();
+ }
+
+ @Override
+ public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
+ return view == object;
+ }
+
+ @NotNull
+ @Override
+ public Object instantiateItem(@NotNull ViewGroup container, int position) {
+ View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
+ PhotoView photoView = view.findViewById(R.id.photoView);
+ Glide.with(context).load(data.get(position)).into(photoView);
+ photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ container.addView(view);
+ return view;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
+ container.removeView((View) object);
+ }
+ }
+
+ //设置切换动画
+ public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
+ //自由控制缩放比例
+ private static final float MAX_SCALE = 1f;
+ private static final float MIN_SCALE = 0.85f;//0.85f
+
+ @Override
+ public void transformPage(@NotNull View page, float position) {
+
+ if (position <= 1) {
+ float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
+ page.setScaleX(scaleFactor);
+ if (position > 0) {
+ page.setTranslationX(-scaleFactor * 2);
+ } else if (position < 0) {
+ page.setTranslationX(scaleFactor * 2);
+ }
+ page.setScaleY(scaleFactor);
+ } else {
+ page.setScaleX(MIN_SCALE);
+ page.setScaleY(MIN_SCALE);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index bc6bbca..6a93d0f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -114,7 +114,7 @@
private String id;
private String changeState;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private MediaPlayer mediaPlayer;
private QMUITipDialog submitDialog;
@@ -293,7 +293,7 @@
//核实照片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -353,7 +353,7 @@
//处理照片
String processImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(processImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = processImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/app/build.gradle b/app/build.gradle
index 045dd9e..1cc4d59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,7 +52,7 @@
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//图片加载框架
- implementation 'com.github.bumptech.glide:glide:4.5.0'
+ implementation 'com.github.bumptech.glide:glide:4.7.1'
//MVP网络请求框架retrofit2+rxjava
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -71,10 +71,10 @@
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
implementation 'com.github.huangyanbin:SmartTable:1.7.1'
- implementation 'com.getui:gtsdk:3.1.4.0'
//个推SDK
- implementation 'com.getui:gtc:3.1.0.0'
+ implementation 'com.getui:gtsdk:3.1.4.0'
//个推核心组件
+ implementation 'com.getui:gtc:3.1.0.0'
//数据库框架
implementation 'org.greenrobot:greendao:3.3.0'
//沉浸式状态栏。基础依赖包,必须要依赖
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 25931cd..92c60e5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -76,6 +76,7 @@
+
+
+
+
+
+
urls = getIntent().getStringArrayListExtra("images");
+ if (urls == null || urls.size() == 0) {
+ return;
+ }
+ pageNumberView.setText("(" + (index + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ imagePagerView.setAdapter(new BigImageAdapter(this, urls));
+ imagePagerView.setCurrentItem(index);
+ imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
+ imagePagerView.setPageMargin(10);//控制两幅图之间的间距
+ imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
+ imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ pageNumberView.setText("(" + (position + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+
+ static class BigImageAdapter extends PagerAdapter {
+
+ private Context context;
+ private List data;
+
+ BigImageAdapter(@NotNull Context context, @NotNull List imageList) {
+ this.context = context;
+ this.data = imageList;
+ }
+
+ @Override
+ public int getCount() {
+ return data.size();
+ }
+
+ @Override
+ public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
+ return view == object;
+ }
+
+ @NotNull
+ @Override
+ public Object instantiateItem(@NotNull ViewGroup container, int position) {
+ View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
+ PhotoView photoView = view.findViewById(R.id.photoView);
+ Glide.with(context).load(data.get(position)).into(photoView);
+ photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ container.addView(view);
+ return view;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
+ container.removeView((View) object);
+ }
+ }
+
+ //设置切换动画
+ public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
+ //自由控制缩放比例
+ private static final float MAX_SCALE = 1f;
+ private static final float MIN_SCALE = 0.85f;//0.85f
+
+ @Override
+ public void transformPage(@NotNull View page, float position) {
+
+ if (position <= 1) {
+ float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
+ page.setScaleX(scaleFactor);
+ if (position > 0) {
+ page.setTranslationX(-scaleFactor * 2);
+ } else if (position < 0) {
+ page.setTranslationX(scaleFactor * 2);
+ }
+ page.setScaleY(scaleFactor);
+ } else {
+ page.setScaleX(MIN_SCALE);
+ page.setScaleY(MIN_SCALE);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index bc6bbca..6a93d0f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -114,7 +114,7 @@
private String id;
private String changeState;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private MediaPlayer mediaPlayer;
private QMUITipDialog submitDialog;
@@ -293,7 +293,7 @@
//核实照片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -353,7 +353,7 @@
//处理照片
String processImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(processImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = processImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
index 23f3260..d4f61b1 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -148,7 +147,7 @@
//核实图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -173,7 +172,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -198,7 +197,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/app/build.gradle b/app/build.gradle
index 045dd9e..1cc4d59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,7 +52,7 @@
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//图片加载框架
- implementation 'com.github.bumptech.glide:glide:4.5.0'
+ implementation 'com.github.bumptech.glide:glide:4.7.1'
//MVP网络请求框架retrofit2+rxjava
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -71,10 +71,10 @@
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
implementation 'com.github.huangyanbin:SmartTable:1.7.1'
- implementation 'com.getui:gtsdk:3.1.4.0'
//个推SDK
- implementation 'com.getui:gtc:3.1.0.0'
+ implementation 'com.getui:gtsdk:3.1.4.0'
//个推核心组件
+ implementation 'com.getui:gtc:3.1.0.0'
//数据库框架
implementation 'org.greenrobot:greendao:3.3.0'
//沉浸式状态栏。基础依赖包,必须要依赖
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 25931cd..92c60e5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -76,6 +76,7 @@
+
+
+
+
+
+
urls = getIntent().getStringArrayListExtra("images");
+ if (urls == null || urls.size() == 0) {
+ return;
+ }
+ pageNumberView.setText("(" + (index + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ imagePagerView.setAdapter(new BigImageAdapter(this, urls));
+ imagePagerView.setCurrentItem(index);
+ imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
+ imagePagerView.setPageMargin(10);//控制两幅图之间的间距
+ imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
+ imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ pageNumberView.setText("(" + (position + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+
+ static class BigImageAdapter extends PagerAdapter {
+
+ private Context context;
+ private List data;
+
+ BigImageAdapter(@NotNull Context context, @NotNull List imageList) {
+ this.context = context;
+ this.data = imageList;
+ }
+
+ @Override
+ public int getCount() {
+ return data.size();
+ }
+
+ @Override
+ public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
+ return view == object;
+ }
+
+ @NotNull
+ @Override
+ public Object instantiateItem(@NotNull ViewGroup container, int position) {
+ View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
+ PhotoView photoView = view.findViewById(R.id.photoView);
+ Glide.with(context).load(data.get(position)).into(photoView);
+ photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ container.addView(view);
+ return view;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
+ container.removeView((View) object);
+ }
+ }
+
+ //设置切换动画
+ public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
+ //自由控制缩放比例
+ private static final float MAX_SCALE = 1f;
+ private static final float MIN_SCALE = 0.85f;//0.85f
+
+ @Override
+ public void transformPage(@NotNull View page, float position) {
+
+ if (position <= 1) {
+ float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
+ page.setScaleX(scaleFactor);
+ if (position > 0) {
+ page.setTranslationX(-scaleFactor * 2);
+ } else if (position < 0) {
+ page.setTranslationX(scaleFactor * 2);
+ }
+ page.setScaleY(scaleFactor);
+ } else {
+ page.setScaleX(MIN_SCALE);
+ page.setScaleY(MIN_SCALE);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index bc6bbca..6a93d0f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -114,7 +114,7 @@
private String id;
private String changeState;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private MediaPlayer mediaPlayer;
private QMUITipDialog submitDialog;
@@ -293,7 +293,7 @@
//核实照片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -353,7 +353,7 @@
//处理照片
String processImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(processImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = processImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
index 23f3260..d4f61b1 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -148,7 +147,7 @@
//核实图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -173,7 +172,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -198,7 +197,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
index e25aefd..2b65bb8 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
@@ -30,7 +30,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -122,7 +121,7 @@
//核实图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -147,7 +146,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -172,7 +171,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/app/build.gradle b/app/build.gradle
index 045dd9e..1cc4d59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,7 +52,7 @@
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//图片加载框架
- implementation 'com.github.bumptech.glide:glide:4.5.0'
+ implementation 'com.github.bumptech.glide:glide:4.7.1'
//MVP网络请求框架retrofit2+rxjava
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -71,10 +71,10 @@
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
implementation 'com.github.huangyanbin:SmartTable:1.7.1'
- implementation 'com.getui:gtsdk:3.1.4.0'
//个推SDK
- implementation 'com.getui:gtc:3.1.0.0'
+ implementation 'com.getui:gtsdk:3.1.4.0'
//个推核心组件
+ implementation 'com.getui:gtc:3.1.0.0'
//数据库框架
implementation 'org.greenrobot:greendao:3.3.0'
//沉浸式状态栏。基础依赖包,必须要依赖
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 25931cd..92c60e5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -76,6 +76,7 @@
+
+
+
+
+
+
urls = getIntent().getStringArrayListExtra("images");
+ if (urls == null || urls.size() == 0) {
+ return;
+ }
+ pageNumberView.setText("(" + (index + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ imagePagerView.setAdapter(new BigImageAdapter(this, urls));
+ imagePagerView.setCurrentItem(index);
+ imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
+ imagePagerView.setPageMargin(10);//控制两幅图之间的间距
+ imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
+ imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ pageNumberView.setText("(" + (position + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+
+ static class BigImageAdapter extends PagerAdapter {
+
+ private Context context;
+ private List data;
+
+ BigImageAdapter(@NotNull Context context, @NotNull List imageList) {
+ this.context = context;
+ this.data = imageList;
+ }
+
+ @Override
+ public int getCount() {
+ return data.size();
+ }
+
+ @Override
+ public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
+ return view == object;
+ }
+
+ @NotNull
+ @Override
+ public Object instantiateItem(@NotNull ViewGroup container, int position) {
+ View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
+ PhotoView photoView = view.findViewById(R.id.photoView);
+ Glide.with(context).load(data.get(position)).into(photoView);
+ photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ container.addView(view);
+ return view;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
+ container.removeView((View) object);
+ }
+ }
+
+ //设置切换动画
+ public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
+ //自由控制缩放比例
+ private static final float MAX_SCALE = 1f;
+ private static final float MIN_SCALE = 0.85f;//0.85f
+
+ @Override
+ public void transformPage(@NotNull View page, float position) {
+
+ if (position <= 1) {
+ float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
+ page.setScaleX(scaleFactor);
+ if (position > 0) {
+ page.setTranslationX(-scaleFactor * 2);
+ } else if (position < 0) {
+ page.setTranslationX(scaleFactor * 2);
+ }
+ page.setScaleY(scaleFactor);
+ } else {
+ page.setScaleX(MIN_SCALE);
+ page.setScaleY(MIN_SCALE);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index bc6bbca..6a93d0f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -114,7 +114,7 @@
private String id;
private String changeState;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private MediaPlayer mediaPlayer;
private QMUITipDialog submitDialog;
@@ -293,7 +293,7 @@
//核实照片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -353,7 +353,7 @@
//处理照片
String processImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(processImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = processImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
index 23f3260..d4f61b1 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -148,7 +147,7 @@
//核实图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -173,7 +172,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -198,7 +197,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
index e25aefd..2b65bb8 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
@@ -30,7 +30,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -122,7 +121,7 @@
//核实图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -147,7 +146,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -172,7 +171,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 7455b6e..da63f04 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -114,7 +114,7 @@
private String caseReason;
private String approvalResult;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseDetailPresenterImpl caseDetailPresenter;
@@ -179,7 +179,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/app/build.gradle b/app/build.gradle
index 045dd9e..1cc4d59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,7 +52,7 @@
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//图片加载框架
- implementation 'com.github.bumptech.glide:glide:4.5.0'
+ implementation 'com.github.bumptech.glide:glide:4.7.1'
//MVP网络请求框架retrofit2+rxjava
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -71,10 +71,10 @@
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
implementation 'com.github.huangyanbin:SmartTable:1.7.1'
- implementation 'com.getui:gtsdk:3.1.4.0'
//个推SDK
- implementation 'com.getui:gtc:3.1.0.0'
+ implementation 'com.getui:gtsdk:3.1.4.0'
//个推核心组件
+ implementation 'com.getui:gtc:3.1.0.0'
//数据库框架
implementation 'org.greenrobot:greendao:3.3.0'
//沉浸式状态栏。基础依赖包,必须要依赖
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 25931cd..92c60e5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -76,6 +76,7 @@
+
+
+
+
+
+
urls = getIntent().getStringArrayListExtra("images");
+ if (urls == null || urls.size() == 0) {
+ return;
+ }
+ pageNumberView.setText("(" + (index + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ imagePagerView.setAdapter(new BigImageAdapter(this, urls));
+ imagePagerView.setCurrentItem(index);
+ imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
+ imagePagerView.setPageMargin(10);//控制两幅图之间的间距
+ imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
+ imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ pageNumberView.setText("(" + (position + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+
+ static class BigImageAdapter extends PagerAdapter {
+
+ private Context context;
+ private List data;
+
+ BigImageAdapter(@NotNull Context context, @NotNull List imageList) {
+ this.context = context;
+ this.data = imageList;
+ }
+
+ @Override
+ public int getCount() {
+ return data.size();
+ }
+
+ @Override
+ public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
+ return view == object;
+ }
+
+ @NotNull
+ @Override
+ public Object instantiateItem(@NotNull ViewGroup container, int position) {
+ View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
+ PhotoView photoView = view.findViewById(R.id.photoView);
+ Glide.with(context).load(data.get(position)).into(photoView);
+ photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ container.addView(view);
+ return view;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
+ container.removeView((View) object);
+ }
+ }
+
+ //设置切换动画
+ public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
+ //自由控制缩放比例
+ private static final float MAX_SCALE = 1f;
+ private static final float MIN_SCALE = 0.85f;//0.85f
+
+ @Override
+ public void transformPage(@NotNull View page, float position) {
+
+ if (position <= 1) {
+ float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
+ page.setScaleX(scaleFactor);
+ if (position > 0) {
+ page.setTranslationX(-scaleFactor * 2);
+ } else if (position < 0) {
+ page.setTranslationX(scaleFactor * 2);
+ }
+ page.setScaleY(scaleFactor);
+ } else {
+ page.setScaleX(MIN_SCALE);
+ page.setScaleY(MIN_SCALE);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index bc6bbca..6a93d0f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -114,7 +114,7 @@
private String id;
private String changeState;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private MediaPlayer mediaPlayer;
private QMUITipDialog submitDialog;
@@ -293,7 +293,7 @@
//核实照片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -353,7 +353,7 @@
//处理照片
String processImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(processImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = processImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
index 23f3260..d4f61b1 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -148,7 +147,7 @@
//核实图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -173,7 +172,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -198,7 +197,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
index e25aefd..2b65bb8 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
@@ -30,7 +30,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -122,7 +121,7 @@
//核实图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -147,7 +146,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -172,7 +171,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 7455b6e..da63f04 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -114,7 +114,7 @@
private String caseReason;
private String approvalResult;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseDetailPresenterImpl caseDetailPresenter;
@@ -179,7 +179,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
index 3079857..443bcc5 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -117,7 +116,7 @@
//最初始的案卷图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -142,7 +141,7 @@
//案卷处理时候上传的图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/app/build.gradle b/app/build.gradle
index 045dd9e..1cc4d59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,7 +52,7 @@
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//图片加载框架
- implementation 'com.github.bumptech.glide:glide:4.5.0'
+ implementation 'com.github.bumptech.glide:glide:4.7.1'
//MVP网络请求框架retrofit2+rxjava
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -71,10 +71,10 @@
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
implementation 'com.github.huangyanbin:SmartTable:1.7.1'
- implementation 'com.getui:gtsdk:3.1.4.0'
//个推SDK
- implementation 'com.getui:gtc:3.1.0.0'
+ implementation 'com.getui:gtsdk:3.1.4.0'
//个推核心组件
+ implementation 'com.getui:gtc:3.1.0.0'
//数据库框架
implementation 'org.greenrobot:greendao:3.3.0'
//沉浸式状态栏。基础依赖包,必须要依赖
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 25931cd..92c60e5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -76,6 +76,7 @@
+
+
+
+
+
+
urls = getIntent().getStringArrayListExtra("images");
+ if (urls == null || urls.size() == 0) {
+ return;
+ }
+ pageNumberView.setText("(" + (index + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ imagePagerView.setAdapter(new BigImageAdapter(this, urls));
+ imagePagerView.setCurrentItem(index);
+ imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
+ imagePagerView.setPageMargin(10);//控制两幅图之间的间距
+ imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
+ imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ pageNumberView.setText("(" + (position + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+
+ static class BigImageAdapter extends PagerAdapter {
+
+ private Context context;
+ private List data;
+
+ BigImageAdapter(@NotNull Context context, @NotNull List imageList) {
+ this.context = context;
+ this.data = imageList;
+ }
+
+ @Override
+ public int getCount() {
+ return data.size();
+ }
+
+ @Override
+ public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
+ return view == object;
+ }
+
+ @NotNull
+ @Override
+ public Object instantiateItem(@NotNull ViewGroup container, int position) {
+ View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
+ PhotoView photoView = view.findViewById(R.id.photoView);
+ Glide.with(context).load(data.get(position)).into(photoView);
+ photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ container.addView(view);
+ return view;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
+ container.removeView((View) object);
+ }
+ }
+
+ //设置切换动画
+ public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
+ //自由控制缩放比例
+ private static final float MAX_SCALE = 1f;
+ private static final float MIN_SCALE = 0.85f;//0.85f
+
+ @Override
+ public void transformPage(@NotNull View page, float position) {
+
+ if (position <= 1) {
+ float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
+ page.setScaleX(scaleFactor);
+ if (position > 0) {
+ page.setTranslationX(-scaleFactor * 2);
+ } else if (position < 0) {
+ page.setTranslationX(scaleFactor * 2);
+ }
+ page.setScaleY(scaleFactor);
+ } else {
+ page.setScaleX(MIN_SCALE);
+ page.setScaleY(MIN_SCALE);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index bc6bbca..6a93d0f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -114,7 +114,7 @@
private String id;
private String changeState;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private MediaPlayer mediaPlayer;
private QMUITipDialog submitDialog;
@@ -293,7 +293,7 @@
//核实照片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -353,7 +353,7 @@
//处理照片
String processImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(processImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = processImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
index 23f3260..d4f61b1 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -148,7 +147,7 @@
//核实图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -173,7 +172,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -198,7 +197,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
index e25aefd..2b65bb8 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
@@ -30,7 +30,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -122,7 +121,7 @@
//核实图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -147,7 +146,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -172,7 +171,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 7455b6e..da63f04 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -114,7 +114,7 @@
private String caseReason;
private String approvalResult;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseDetailPresenterImpl caseDetailPresenter;
@@ -179,7 +179,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
index 3079857..443bcc5 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -117,7 +116,7 @@
//最初始的案卷图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -142,7 +141,7 @@
//案卷处理时候上传的图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
index 67621a8..2bf82a6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
@@ -171,7 +171,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/app/build.gradle b/app/build.gradle
index 045dd9e..1cc4d59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,7 +52,7 @@
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//图片加载框架
- implementation 'com.github.bumptech.glide:glide:4.5.0'
+ implementation 'com.github.bumptech.glide:glide:4.7.1'
//MVP网络请求框架retrofit2+rxjava
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -71,10 +71,10 @@
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
implementation 'com.github.huangyanbin:SmartTable:1.7.1'
- implementation 'com.getui:gtsdk:3.1.4.0'
//个推SDK
- implementation 'com.getui:gtc:3.1.0.0'
+ implementation 'com.getui:gtsdk:3.1.4.0'
//个推核心组件
+ implementation 'com.getui:gtc:3.1.0.0'
//数据库框架
implementation 'org.greenrobot:greendao:3.3.0'
//沉浸式状态栏。基础依赖包,必须要依赖
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 25931cd..92c60e5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -76,6 +76,7 @@
+
+
+
+
+
+
urls = getIntent().getStringArrayListExtra("images");
+ if (urls == null || urls.size() == 0) {
+ return;
+ }
+ pageNumberView.setText("(" + (index + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ imagePagerView.setAdapter(new BigImageAdapter(this, urls));
+ imagePagerView.setCurrentItem(index);
+ imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
+ imagePagerView.setPageMargin(10);//控制两幅图之间的间距
+ imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
+ imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ pageNumberView.setText("(" + (position + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+
+ static class BigImageAdapter extends PagerAdapter {
+
+ private Context context;
+ private List data;
+
+ BigImageAdapter(@NotNull Context context, @NotNull List imageList) {
+ this.context = context;
+ this.data = imageList;
+ }
+
+ @Override
+ public int getCount() {
+ return data.size();
+ }
+
+ @Override
+ public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
+ return view == object;
+ }
+
+ @NotNull
+ @Override
+ public Object instantiateItem(@NotNull ViewGroup container, int position) {
+ View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
+ PhotoView photoView = view.findViewById(R.id.photoView);
+ Glide.with(context).load(data.get(position)).into(photoView);
+ photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ container.addView(view);
+ return view;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
+ container.removeView((View) object);
+ }
+ }
+
+ //设置切换动画
+ public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
+ //自由控制缩放比例
+ private static final float MAX_SCALE = 1f;
+ private static final float MIN_SCALE = 0.85f;//0.85f
+
+ @Override
+ public void transformPage(@NotNull View page, float position) {
+
+ if (position <= 1) {
+ float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
+ page.setScaleX(scaleFactor);
+ if (position > 0) {
+ page.setTranslationX(-scaleFactor * 2);
+ } else if (position < 0) {
+ page.setTranslationX(scaleFactor * 2);
+ }
+ page.setScaleY(scaleFactor);
+ } else {
+ page.setScaleX(MIN_SCALE);
+ page.setScaleY(MIN_SCALE);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index bc6bbca..6a93d0f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -114,7 +114,7 @@
private String id;
private String changeState;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private MediaPlayer mediaPlayer;
private QMUITipDialog submitDialog;
@@ -293,7 +293,7 @@
//核实照片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -353,7 +353,7 @@
//处理照片
String processImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(processImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = processImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
index 23f3260..d4f61b1 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -148,7 +147,7 @@
//核实图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -173,7 +172,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -198,7 +197,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
index e25aefd..2b65bb8 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
@@ -30,7 +30,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -122,7 +121,7 @@
//核实图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -147,7 +146,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -172,7 +171,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 7455b6e..da63f04 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -114,7 +114,7 @@
private String caseReason;
private String approvalResult;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseDetailPresenterImpl caseDetailPresenter;
@@ -179,7 +179,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
index 3079857..443bcc5 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -117,7 +116,7 @@
//最初始的案卷图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -142,7 +141,7 @@
//案卷处理时候上传的图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
index 67621a8..2bf82a6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
@@ -171,7 +171,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
index 7e88437..5e8eee6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -118,7 +117,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/app/build.gradle b/app/build.gradle
index 045dd9e..1cc4d59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,7 +52,7 @@
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//图片加载框架
- implementation 'com.github.bumptech.glide:glide:4.5.0'
+ implementation 'com.github.bumptech.glide:glide:4.7.1'
//MVP网络请求框架retrofit2+rxjava
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -71,10 +71,10 @@
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
implementation 'com.github.huangyanbin:SmartTable:1.7.1'
- implementation 'com.getui:gtsdk:3.1.4.0'
//个推SDK
- implementation 'com.getui:gtc:3.1.0.0'
+ implementation 'com.getui:gtsdk:3.1.4.0'
//个推核心组件
+ implementation 'com.getui:gtc:3.1.0.0'
//数据库框架
implementation 'org.greenrobot:greendao:3.3.0'
//沉浸式状态栏。基础依赖包,必须要依赖
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 25931cd..92c60e5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -76,6 +76,7 @@
+
+
+
+
+
+
urls = getIntent().getStringArrayListExtra("images");
+ if (urls == null || urls.size() == 0) {
+ return;
+ }
+ pageNumberView.setText("(" + (index + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ imagePagerView.setAdapter(new BigImageAdapter(this, urls));
+ imagePagerView.setCurrentItem(index);
+ imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
+ imagePagerView.setPageMargin(10);//控制两幅图之间的间距
+ imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
+ imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ pageNumberView.setText("(" + (position + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+
+ static class BigImageAdapter extends PagerAdapter {
+
+ private Context context;
+ private List data;
+
+ BigImageAdapter(@NotNull Context context, @NotNull List imageList) {
+ this.context = context;
+ this.data = imageList;
+ }
+
+ @Override
+ public int getCount() {
+ return data.size();
+ }
+
+ @Override
+ public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
+ return view == object;
+ }
+
+ @NotNull
+ @Override
+ public Object instantiateItem(@NotNull ViewGroup container, int position) {
+ View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
+ PhotoView photoView = view.findViewById(R.id.photoView);
+ Glide.with(context).load(data.get(position)).into(photoView);
+ photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ container.addView(view);
+ return view;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
+ container.removeView((View) object);
+ }
+ }
+
+ //设置切换动画
+ public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
+ //自由控制缩放比例
+ private static final float MAX_SCALE = 1f;
+ private static final float MIN_SCALE = 0.85f;//0.85f
+
+ @Override
+ public void transformPage(@NotNull View page, float position) {
+
+ if (position <= 1) {
+ float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
+ page.setScaleX(scaleFactor);
+ if (position > 0) {
+ page.setTranslationX(-scaleFactor * 2);
+ } else if (position < 0) {
+ page.setTranslationX(scaleFactor * 2);
+ }
+ page.setScaleY(scaleFactor);
+ } else {
+ page.setScaleX(MIN_SCALE);
+ page.setScaleY(MIN_SCALE);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index bc6bbca..6a93d0f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -114,7 +114,7 @@
private String id;
private String changeState;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private MediaPlayer mediaPlayer;
private QMUITipDialog submitDialog;
@@ -293,7 +293,7 @@
//核实照片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -353,7 +353,7 @@
//处理照片
String processImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(processImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = processImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
index 23f3260..d4f61b1 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -148,7 +147,7 @@
//核实图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -173,7 +172,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -198,7 +197,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
index e25aefd..2b65bb8 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
@@ -30,7 +30,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -122,7 +121,7 @@
//核实图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -147,7 +146,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -172,7 +171,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 7455b6e..da63f04 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -114,7 +114,7 @@
private String caseReason;
private String approvalResult;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseDetailPresenterImpl caseDetailPresenter;
@@ -179,7 +179,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
index 3079857..443bcc5 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -117,7 +116,7 @@
//最初始的案卷图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -142,7 +141,7 @@
//案卷处理时候上传的图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
index 67621a8..2bf82a6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
@@ -171,7 +171,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
index 7e88437..5e8eee6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -118,7 +117,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
index e65fa0a..cf3e900 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -121,7 +121,7 @@
private QMUITipDialog submitDialog, qmuiTipDialog;
private UploadImagePresenterImpl uploadImagePresenter;
private List imageList = new ArrayList<>();//服务器返回的拍照数据集
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private String eorc = "请选择";
private String typeCode = "请选择";
private String typeDetailCode = "请选择";//默认值,防止用户不选择直接跳过
diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/app/build.gradle b/app/build.gradle
index 045dd9e..1cc4d59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,7 +52,7 @@
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//图片加载框架
- implementation 'com.github.bumptech.glide:glide:4.5.0'
+ implementation 'com.github.bumptech.glide:glide:4.7.1'
//MVP网络请求框架retrofit2+rxjava
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -71,10 +71,10 @@
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
implementation 'com.github.huangyanbin:SmartTable:1.7.1'
- implementation 'com.getui:gtsdk:3.1.4.0'
//个推SDK
- implementation 'com.getui:gtc:3.1.0.0'
+ implementation 'com.getui:gtsdk:3.1.4.0'
//个推核心组件
+ implementation 'com.getui:gtc:3.1.0.0'
//数据库框架
implementation 'org.greenrobot:greendao:3.3.0'
//沉浸式状态栏。基础依赖包,必须要依赖
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 25931cd..92c60e5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -76,6 +76,7 @@
+
+
+
+
+
+
urls = getIntent().getStringArrayListExtra("images");
+ if (urls == null || urls.size() == 0) {
+ return;
+ }
+ pageNumberView.setText("(" + (index + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ imagePagerView.setAdapter(new BigImageAdapter(this, urls));
+ imagePagerView.setCurrentItem(index);
+ imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
+ imagePagerView.setPageMargin(10);//控制两幅图之间的间距
+ imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
+ imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ pageNumberView.setText("(" + (position + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+
+ static class BigImageAdapter extends PagerAdapter {
+
+ private Context context;
+ private List data;
+
+ BigImageAdapter(@NotNull Context context, @NotNull List imageList) {
+ this.context = context;
+ this.data = imageList;
+ }
+
+ @Override
+ public int getCount() {
+ return data.size();
+ }
+
+ @Override
+ public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
+ return view == object;
+ }
+
+ @NotNull
+ @Override
+ public Object instantiateItem(@NotNull ViewGroup container, int position) {
+ View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
+ PhotoView photoView = view.findViewById(R.id.photoView);
+ Glide.with(context).load(data.get(position)).into(photoView);
+ photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ container.addView(view);
+ return view;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
+ container.removeView((View) object);
+ }
+ }
+
+ //设置切换动画
+ public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
+ //自由控制缩放比例
+ private static final float MAX_SCALE = 1f;
+ private static final float MIN_SCALE = 0.85f;//0.85f
+
+ @Override
+ public void transformPage(@NotNull View page, float position) {
+
+ if (position <= 1) {
+ float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
+ page.setScaleX(scaleFactor);
+ if (position > 0) {
+ page.setTranslationX(-scaleFactor * 2);
+ } else if (position < 0) {
+ page.setTranslationX(scaleFactor * 2);
+ }
+ page.setScaleY(scaleFactor);
+ } else {
+ page.setScaleX(MIN_SCALE);
+ page.setScaleY(MIN_SCALE);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index bc6bbca..6a93d0f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -114,7 +114,7 @@
private String id;
private String changeState;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private MediaPlayer mediaPlayer;
private QMUITipDialog submitDialog;
@@ -293,7 +293,7 @@
//核实照片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -353,7 +353,7 @@
//处理照片
String processImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(processImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = processImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
index 23f3260..d4f61b1 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -148,7 +147,7 @@
//核实图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -173,7 +172,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -198,7 +197,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
index e25aefd..2b65bb8 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
@@ -30,7 +30,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -122,7 +121,7 @@
//核实图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -147,7 +146,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -172,7 +171,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 7455b6e..da63f04 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -114,7 +114,7 @@
private String caseReason;
private String approvalResult;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseDetailPresenterImpl caseDetailPresenter;
@@ -179,7 +179,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
index 3079857..443bcc5 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -117,7 +116,7 @@
//最初始的案卷图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -142,7 +141,7 @@
//案卷处理时候上传的图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
index 67621a8..2bf82a6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
@@ -171,7 +171,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
index 7e88437..5e8eee6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -118,7 +117,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
index e65fa0a..cf3e900 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -121,7 +121,7 @@
private QMUITipDialog submitDialog, qmuiTipDialog;
private UploadImagePresenterImpl uploadImagePresenter;
private List imageList = new ArrayList<>();//服务器返回的拍照数据集
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private String eorc = "请选择";
private String typeCode = "请选择";
private String typeDetailCode = "请选择";//默认值,防止用户不选择直接跳过
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
index 253c2ab..b4d3bac 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
@@ -89,7 +89,7 @@
private List smallClassBeans;
private QMUITipDialog submitDialog;
private UploadImagePresenterImpl uploadImagePresenter;
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List imageList = new ArrayList<>();//上传到服务器的数据集
private String eorc = "请选择";
private String typeCode = "请选择";
diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/app/build.gradle b/app/build.gradle
index 045dd9e..1cc4d59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,7 +52,7 @@
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//图片加载框架
- implementation 'com.github.bumptech.glide:glide:4.5.0'
+ implementation 'com.github.bumptech.glide:glide:4.7.1'
//MVP网络请求框架retrofit2+rxjava
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -71,10 +71,10 @@
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
implementation 'com.github.huangyanbin:SmartTable:1.7.1'
- implementation 'com.getui:gtsdk:3.1.4.0'
//个推SDK
- implementation 'com.getui:gtc:3.1.0.0'
+ implementation 'com.getui:gtsdk:3.1.4.0'
//个推核心组件
+ implementation 'com.getui:gtc:3.1.0.0'
//数据库框架
implementation 'org.greenrobot:greendao:3.3.0'
//沉浸式状态栏。基础依赖包,必须要依赖
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 25931cd..92c60e5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -76,6 +76,7 @@
+
+
+
+
+
+
urls = getIntent().getStringArrayListExtra("images");
+ if (urls == null || urls.size() == 0) {
+ return;
+ }
+ pageNumberView.setText("(" + (index + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ imagePagerView.setAdapter(new BigImageAdapter(this, urls));
+ imagePagerView.setCurrentItem(index);
+ imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
+ imagePagerView.setPageMargin(10);//控制两幅图之间的间距
+ imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
+ imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ pageNumberView.setText("(" + (position + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+
+ static class BigImageAdapter extends PagerAdapter {
+
+ private Context context;
+ private List data;
+
+ BigImageAdapter(@NotNull Context context, @NotNull List imageList) {
+ this.context = context;
+ this.data = imageList;
+ }
+
+ @Override
+ public int getCount() {
+ return data.size();
+ }
+
+ @Override
+ public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
+ return view == object;
+ }
+
+ @NotNull
+ @Override
+ public Object instantiateItem(@NotNull ViewGroup container, int position) {
+ View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
+ PhotoView photoView = view.findViewById(R.id.photoView);
+ Glide.with(context).load(data.get(position)).into(photoView);
+ photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ container.addView(view);
+ return view;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
+ container.removeView((View) object);
+ }
+ }
+
+ //设置切换动画
+ public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
+ //自由控制缩放比例
+ private static final float MAX_SCALE = 1f;
+ private static final float MIN_SCALE = 0.85f;//0.85f
+
+ @Override
+ public void transformPage(@NotNull View page, float position) {
+
+ if (position <= 1) {
+ float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
+ page.setScaleX(scaleFactor);
+ if (position > 0) {
+ page.setTranslationX(-scaleFactor * 2);
+ } else if (position < 0) {
+ page.setTranslationX(scaleFactor * 2);
+ }
+ page.setScaleY(scaleFactor);
+ } else {
+ page.setScaleX(MIN_SCALE);
+ page.setScaleY(MIN_SCALE);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index bc6bbca..6a93d0f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -114,7 +114,7 @@
private String id;
private String changeState;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private MediaPlayer mediaPlayer;
private QMUITipDialog submitDialog;
@@ -293,7 +293,7 @@
//核实照片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -353,7 +353,7 @@
//处理照片
String processImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(processImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = processImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
index 23f3260..d4f61b1 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -148,7 +147,7 @@
//核实图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -173,7 +172,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -198,7 +197,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
index e25aefd..2b65bb8 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
@@ -30,7 +30,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -122,7 +121,7 @@
//核实图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -147,7 +146,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -172,7 +171,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 7455b6e..da63f04 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -114,7 +114,7 @@
private String caseReason;
private String approvalResult;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseDetailPresenterImpl caseDetailPresenter;
@@ -179,7 +179,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
index 3079857..443bcc5 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -117,7 +116,7 @@
//最初始的案卷图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -142,7 +141,7 @@
//案卷处理时候上传的图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
index 67621a8..2bf82a6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
@@ -171,7 +171,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
index 7e88437..5e8eee6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -118,7 +117,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
index e65fa0a..cf3e900 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -121,7 +121,7 @@
private QMUITipDialog submitDialog, qmuiTipDialog;
private UploadImagePresenterImpl uploadImagePresenter;
private List imageList = new ArrayList<>();//服务器返回的拍照数据集
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private String eorc = "请选择";
private String typeCode = "请选择";
private String typeDetailCode = "请选择";//默认值,防止用户不选择直接跳过
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
index 253c2ab..b4d3bac 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
@@ -89,7 +89,7 @@
private List smallClassBeans;
private QMUITipDialog submitDialog;
private UploadImagePresenterImpl uploadImagePresenter;
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List imageList = new ArrayList<>();//上传到服务器的数据集
private String eorc = "请选择";
private String typeCode = "请选择";
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
index 8a155f6..926aecb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -121,7 +120,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/app/build.gradle b/app/build.gradle
index 045dd9e..1cc4d59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,7 +52,7 @@
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//图片加载框架
- implementation 'com.github.bumptech.glide:glide:4.5.0'
+ implementation 'com.github.bumptech.glide:glide:4.7.1'
//MVP网络请求框架retrofit2+rxjava
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -71,10 +71,10 @@
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
implementation 'com.github.huangyanbin:SmartTable:1.7.1'
- implementation 'com.getui:gtsdk:3.1.4.0'
//个推SDK
- implementation 'com.getui:gtc:3.1.0.0'
+ implementation 'com.getui:gtsdk:3.1.4.0'
//个推核心组件
+ implementation 'com.getui:gtc:3.1.0.0'
//数据库框架
implementation 'org.greenrobot:greendao:3.3.0'
//沉浸式状态栏。基础依赖包,必须要依赖
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 25931cd..92c60e5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -76,6 +76,7 @@
+
+
+
+
+
+
urls = getIntent().getStringArrayListExtra("images");
+ if (urls == null || urls.size() == 0) {
+ return;
+ }
+ pageNumberView.setText("(" + (index + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ imagePagerView.setAdapter(new BigImageAdapter(this, urls));
+ imagePagerView.setCurrentItem(index);
+ imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
+ imagePagerView.setPageMargin(10);//控制两幅图之间的间距
+ imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
+ imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ pageNumberView.setText("(" + (position + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+
+ static class BigImageAdapter extends PagerAdapter {
+
+ private Context context;
+ private List data;
+
+ BigImageAdapter(@NotNull Context context, @NotNull List imageList) {
+ this.context = context;
+ this.data = imageList;
+ }
+
+ @Override
+ public int getCount() {
+ return data.size();
+ }
+
+ @Override
+ public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
+ return view == object;
+ }
+
+ @NotNull
+ @Override
+ public Object instantiateItem(@NotNull ViewGroup container, int position) {
+ View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
+ PhotoView photoView = view.findViewById(R.id.photoView);
+ Glide.with(context).load(data.get(position)).into(photoView);
+ photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ container.addView(view);
+ return view;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
+ container.removeView((View) object);
+ }
+ }
+
+ //设置切换动画
+ public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
+ //自由控制缩放比例
+ private static final float MAX_SCALE = 1f;
+ private static final float MIN_SCALE = 0.85f;//0.85f
+
+ @Override
+ public void transformPage(@NotNull View page, float position) {
+
+ if (position <= 1) {
+ float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
+ page.setScaleX(scaleFactor);
+ if (position > 0) {
+ page.setTranslationX(-scaleFactor * 2);
+ } else if (position < 0) {
+ page.setTranslationX(scaleFactor * 2);
+ }
+ page.setScaleY(scaleFactor);
+ } else {
+ page.setScaleX(MIN_SCALE);
+ page.setScaleY(MIN_SCALE);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index bc6bbca..6a93d0f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -114,7 +114,7 @@
private String id;
private String changeState;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private MediaPlayer mediaPlayer;
private QMUITipDialog submitDialog;
@@ -293,7 +293,7 @@
//核实照片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -353,7 +353,7 @@
//处理照片
String processImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(processImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = processImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
index 23f3260..d4f61b1 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -148,7 +147,7 @@
//核实图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -173,7 +172,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -198,7 +197,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
index e25aefd..2b65bb8 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
@@ -30,7 +30,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -122,7 +121,7 @@
//核实图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -147,7 +146,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -172,7 +171,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 7455b6e..da63f04 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -114,7 +114,7 @@
private String caseReason;
private String approvalResult;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseDetailPresenterImpl caseDetailPresenter;
@@ -179,7 +179,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
index 3079857..443bcc5 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -117,7 +116,7 @@
//最初始的案卷图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -142,7 +141,7 @@
//案卷处理时候上传的图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
index 67621a8..2bf82a6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
@@ -171,7 +171,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
index 7e88437..5e8eee6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -118,7 +117,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
index e65fa0a..cf3e900 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -121,7 +121,7 @@
private QMUITipDialog submitDialog, qmuiTipDialog;
private UploadImagePresenterImpl uploadImagePresenter;
private List imageList = new ArrayList<>();//服务器返回的拍照数据集
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private String eorc = "请选择";
private String typeCode = "请选择";
private String typeDetailCode = "请选择";//默认值,防止用户不选择直接跳过
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
index 253c2ab..b4d3bac 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
@@ -89,7 +89,7 @@
private List smallClassBeans;
private QMUITipDialog submitDialog;
private UploadImagePresenterImpl uploadImagePresenter;
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List imageList = new ArrayList<>();//上传到服务器的数据集
private String eorc = "请选择";
private String typeCode = "请选择";
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
index 8a155f6..926aecb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -121,7 +120,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
index c30bd0f..509d0be 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
@@ -139,7 +139,7 @@
private MediaPlayer mediaPlayer;
private UploadImagePresenterImpl uploadImagePresenter;
private QMUITipDialog submitDialog;
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseNextNodePresenterImpl caseNextNodePresenter;
private CaseHandlePresenterImpl caseHandlePresenter;
@@ -226,7 +226,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/app/build.gradle b/app/build.gradle
index 045dd9e..1cc4d59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,7 +52,7 @@
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//图片加载框架
- implementation 'com.github.bumptech.glide:glide:4.5.0'
+ implementation 'com.github.bumptech.glide:glide:4.7.1'
//MVP网络请求框架retrofit2+rxjava
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -71,10 +71,10 @@
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
implementation 'com.github.huangyanbin:SmartTable:1.7.1'
- implementation 'com.getui:gtsdk:3.1.4.0'
//个推SDK
- implementation 'com.getui:gtc:3.1.0.0'
+ implementation 'com.getui:gtsdk:3.1.4.0'
//个推核心组件
+ implementation 'com.getui:gtc:3.1.0.0'
//数据库框架
implementation 'org.greenrobot:greendao:3.3.0'
//沉浸式状态栏。基础依赖包,必须要依赖
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 25931cd..92c60e5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -76,6 +76,7 @@
+
+
+
+
+
+
urls = getIntent().getStringArrayListExtra("images");
+ if (urls == null || urls.size() == 0) {
+ return;
+ }
+ pageNumberView.setText("(" + (index + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ imagePagerView.setAdapter(new BigImageAdapter(this, urls));
+ imagePagerView.setCurrentItem(index);
+ imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
+ imagePagerView.setPageMargin(10);//控制两幅图之间的间距
+ imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
+ imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ pageNumberView.setText("(" + (position + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+
+ static class BigImageAdapter extends PagerAdapter {
+
+ private Context context;
+ private List data;
+
+ BigImageAdapter(@NotNull Context context, @NotNull List imageList) {
+ this.context = context;
+ this.data = imageList;
+ }
+
+ @Override
+ public int getCount() {
+ return data.size();
+ }
+
+ @Override
+ public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
+ return view == object;
+ }
+
+ @NotNull
+ @Override
+ public Object instantiateItem(@NotNull ViewGroup container, int position) {
+ View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
+ PhotoView photoView = view.findViewById(R.id.photoView);
+ Glide.with(context).load(data.get(position)).into(photoView);
+ photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ container.addView(view);
+ return view;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
+ container.removeView((View) object);
+ }
+ }
+
+ //设置切换动画
+ public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
+ //自由控制缩放比例
+ private static final float MAX_SCALE = 1f;
+ private static final float MIN_SCALE = 0.85f;//0.85f
+
+ @Override
+ public void transformPage(@NotNull View page, float position) {
+
+ if (position <= 1) {
+ float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
+ page.setScaleX(scaleFactor);
+ if (position > 0) {
+ page.setTranslationX(-scaleFactor * 2);
+ } else if (position < 0) {
+ page.setTranslationX(scaleFactor * 2);
+ }
+ page.setScaleY(scaleFactor);
+ } else {
+ page.setScaleX(MIN_SCALE);
+ page.setScaleY(MIN_SCALE);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index bc6bbca..6a93d0f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -114,7 +114,7 @@
private String id;
private String changeState;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private MediaPlayer mediaPlayer;
private QMUITipDialog submitDialog;
@@ -293,7 +293,7 @@
//核实照片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -353,7 +353,7 @@
//处理照片
String processImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(processImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = processImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
index 23f3260..d4f61b1 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -148,7 +147,7 @@
//核实图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -173,7 +172,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -198,7 +197,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
index e25aefd..2b65bb8 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
@@ -30,7 +30,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -122,7 +121,7 @@
//核实图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -147,7 +146,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -172,7 +171,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 7455b6e..da63f04 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -114,7 +114,7 @@
private String caseReason;
private String approvalResult;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseDetailPresenterImpl caseDetailPresenter;
@@ -179,7 +179,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
index 3079857..443bcc5 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -117,7 +116,7 @@
//最初始的案卷图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -142,7 +141,7 @@
//案卷处理时候上传的图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
index 67621a8..2bf82a6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
@@ -171,7 +171,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
index 7e88437..5e8eee6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -118,7 +117,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
index e65fa0a..cf3e900 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -121,7 +121,7 @@
private QMUITipDialog submitDialog, qmuiTipDialog;
private UploadImagePresenterImpl uploadImagePresenter;
private List imageList = new ArrayList<>();//服务器返回的拍照数据集
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private String eorc = "请选择";
private String typeCode = "请选择";
private String typeDetailCode = "请选择";//默认值,防止用户不选择直接跳过
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
index 253c2ab..b4d3bac 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
@@ -89,7 +89,7 @@
private List smallClassBeans;
private QMUITipDialog submitDialog;
private UploadImagePresenterImpl uploadImagePresenter;
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List imageList = new ArrayList<>();//上传到服务器的数据集
private String eorc = "请选择";
private String typeCode = "请选择";
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
index 8a155f6..926aecb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -121,7 +120,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
index c30bd0f..509d0be 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
@@ -139,7 +139,7 @@
private MediaPlayer mediaPlayer;
private UploadImagePresenterImpl uploadImagePresenter;
private QMUITipDialog submitDialog;
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseNextNodePresenterImpl caseNextNodePresenter;
private CaseHandlePresenterImpl caseHandlePresenter;
@@ -226,7 +226,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
index bfd99ef..1064b85 100644
--- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
@@ -30,7 +30,6 @@
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
import com.casic.dcms.utils.callback.ILocationListener;
-import com.casic.dcms.widgets.BigPictureDialog;
import com.esri.arcgisruntime.geometry.Point;
import com.esri.arcgisruntime.layers.ArcGISTiledLayer;
import com.esri.arcgisruntime.mapping.ArcGISMap;
@@ -50,7 +49,6 @@
import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
import java.io.File;
-import java.util.Collections;
import butterknife.BindView;
import butterknife.OnClick;
@@ -254,11 +252,7 @@
pictureView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- new BigPictureDialog.Builder()
- .setContext(context)
- .setImageIndex(0)
- .setImageList(Collections.singletonList(realPath))
- .build().show();
+
}
});
}
diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/app/build.gradle b/app/build.gradle
index 045dd9e..1cc4d59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,7 +52,7 @@
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//图片加载框架
- implementation 'com.github.bumptech.glide:glide:4.5.0'
+ implementation 'com.github.bumptech.glide:glide:4.7.1'
//MVP网络请求框架retrofit2+rxjava
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -71,10 +71,10 @@
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
implementation 'com.github.huangyanbin:SmartTable:1.7.1'
- implementation 'com.getui:gtsdk:3.1.4.0'
//个推SDK
- implementation 'com.getui:gtc:3.1.0.0'
+ implementation 'com.getui:gtsdk:3.1.4.0'
//个推核心组件
+ implementation 'com.getui:gtc:3.1.0.0'
//数据库框架
implementation 'org.greenrobot:greendao:3.3.0'
//沉浸式状态栏。基础依赖包,必须要依赖
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 25931cd..92c60e5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -76,6 +76,7 @@
+
+
+
+
+
+
urls = getIntent().getStringArrayListExtra("images");
+ if (urls == null || urls.size() == 0) {
+ return;
+ }
+ pageNumberView.setText("(" + (index + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ imagePagerView.setAdapter(new BigImageAdapter(this, urls));
+ imagePagerView.setCurrentItem(index);
+ imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
+ imagePagerView.setPageMargin(10);//控制两幅图之间的间距
+ imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
+ imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ pageNumberView.setText("(" + (position + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+
+ static class BigImageAdapter extends PagerAdapter {
+
+ private Context context;
+ private List data;
+
+ BigImageAdapter(@NotNull Context context, @NotNull List imageList) {
+ this.context = context;
+ this.data = imageList;
+ }
+
+ @Override
+ public int getCount() {
+ return data.size();
+ }
+
+ @Override
+ public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
+ return view == object;
+ }
+
+ @NotNull
+ @Override
+ public Object instantiateItem(@NotNull ViewGroup container, int position) {
+ View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
+ PhotoView photoView = view.findViewById(R.id.photoView);
+ Glide.with(context).load(data.get(position)).into(photoView);
+ photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ container.addView(view);
+ return view;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
+ container.removeView((View) object);
+ }
+ }
+
+ //设置切换动画
+ public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
+ //自由控制缩放比例
+ private static final float MAX_SCALE = 1f;
+ private static final float MIN_SCALE = 0.85f;//0.85f
+
+ @Override
+ public void transformPage(@NotNull View page, float position) {
+
+ if (position <= 1) {
+ float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
+ page.setScaleX(scaleFactor);
+ if (position > 0) {
+ page.setTranslationX(-scaleFactor * 2);
+ } else if (position < 0) {
+ page.setTranslationX(scaleFactor * 2);
+ }
+ page.setScaleY(scaleFactor);
+ } else {
+ page.setScaleX(MIN_SCALE);
+ page.setScaleY(MIN_SCALE);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index bc6bbca..6a93d0f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -114,7 +114,7 @@
private String id;
private String changeState;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private MediaPlayer mediaPlayer;
private QMUITipDialog submitDialog;
@@ -293,7 +293,7 @@
//核实照片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -353,7 +353,7 @@
//处理照片
String processImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(processImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = processImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
index 23f3260..d4f61b1 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -148,7 +147,7 @@
//核实图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -173,7 +172,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -198,7 +197,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
index e25aefd..2b65bb8 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
@@ -30,7 +30,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -122,7 +121,7 @@
//核实图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -147,7 +146,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -172,7 +171,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 7455b6e..da63f04 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -114,7 +114,7 @@
private String caseReason;
private String approvalResult;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseDetailPresenterImpl caseDetailPresenter;
@@ -179,7 +179,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
index 3079857..443bcc5 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -117,7 +116,7 @@
//最初始的案卷图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -142,7 +141,7 @@
//案卷处理时候上传的图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
index 67621a8..2bf82a6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
@@ -171,7 +171,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
index 7e88437..5e8eee6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -118,7 +117,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
index e65fa0a..cf3e900 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -121,7 +121,7 @@
private QMUITipDialog submitDialog, qmuiTipDialog;
private UploadImagePresenterImpl uploadImagePresenter;
private List imageList = new ArrayList<>();//服务器返回的拍照数据集
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private String eorc = "请选择";
private String typeCode = "请选择";
private String typeDetailCode = "请选择";//默认值,防止用户不选择直接跳过
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
index 253c2ab..b4d3bac 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
@@ -89,7 +89,7 @@
private List smallClassBeans;
private QMUITipDialog submitDialog;
private UploadImagePresenterImpl uploadImagePresenter;
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List imageList = new ArrayList<>();//上传到服务器的数据集
private String eorc = "请选择";
private String typeCode = "请选择";
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
index 8a155f6..926aecb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -121,7 +120,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
index c30bd0f..509d0be 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
@@ -139,7 +139,7 @@
private MediaPlayer mediaPlayer;
private UploadImagePresenterImpl uploadImagePresenter;
private QMUITipDialog submitDialog;
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseNextNodePresenterImpl caseNextNodePresenter;
private CaseHandlePresenterImpl caseHandlePresenter;
@@ -226,7 +226,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
index bfd99ef..1064b85 100644
--- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
@@ -30,7 +30,6 @@
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
import com.casic.dcms.utils.callback.ILocationListener;
-import com.casic.dcms.widgets.BigPictureDialog;
import com.esri.arcgisruntime.geometry.Point;
import com.esri.arcgisruntime.layers.ArcGISTiledLayer;
import com.esri.arcgisruntime.mapping.ArcGISMap;
@@ -50,7 +49,6 @@
import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
import java.io.File;
-import java.util.Collections;
import butterknife.BindView;
import butterknife.OnClick;
@@ -254,11 +252,7 @@
pictureView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- new BigPictureDialog.Builder()
- .setContext(context)
- .setImageIndex(0)
- .setImageList(Collections.singletonList(realPath))
- .build().show();
+
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
index d78f2f5..7faa01b 100644
--- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
@@ -75,7 +75,7 @@
private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter;
private ImageRecycleViewAdapter imageAdapter;
private QMUITipDialog submitDialog;
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private String gridId, shopID;
diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/app/build.gradle b/app/build.gradle
index 045dd9e..1cc4d59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,7 +52,7 @@
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//图片加载框架
- implementation 'com.github.bumptech.glide:glide:4.5.0'
+ implementation 'com.github.bumptech.glide:glide:4.7.1'
//MVP网络请求框架retrofit2+rxjava
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -71,10 +71,10 @@
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
implementation 'com.github.huangyanbin:SmartTable:1.7.1'
- implementation 'com.getui:gtsdk:3.1.4.0'
//个推SDK
- implementation 'com.getui:gtc:3.1.0.0'
+ implementation 'com.getui:gtsdk:3.1.4.0'
//个推核心组件
+ implementation 'com.getui:gtc:3.1.0.0'
//数据库框架
implementation 'org.greenrobot:greendao:3.3.0'
//沉浸式状态栏。基础依赖包,必须要依赖
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 25931cd..92c60e5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -76,6 +76,7 @@
+
+
+
+
+
+
urls = getIntent().getStringArrayListExtra("images");
+ if (urls == null || urls.size() == 0) {
+ return;
+ }
+ pageNumberView.setText("(" + (index + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ imagePagerView.setAdapter(new BigImageAdapter(this, urls));
+ imagePagerView.setCurrentItem(index);
+ imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
+ imagePagerView.setPageMargin(10);//控制两幅图之间的间距
+ imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
+ imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ pageNumberView.setText("(" + (position + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+
+ static class BigImageAdapter extends PagerAdapter {
+
+ private Context context;
+ private List data;
+
+ BigImageAdapter(@NotNull Context context, @NotNull List imageList) {
+ this.context = context;
+ this.data = imageList;
+ }
+
+ @Override
+ public int getCount() {
+ return data.size();
+ }
+
+ @Override
+ public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
+ return view == object;
+ }
+
+ @NotNull
+ @Override
+ public Object instantiateItem(@NotNull ViewGroup container, int position) {
+ View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
+ PhotoView photoView = view.findViewById(R.id.photoView);
+ Glide.with(context).load(data.get(position)).into(photoView);
+ photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ container.addView(view);
+ return view;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
+ container.removeView((View) object);
+ }
+ }
+
+ //设置切换动画
+ public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
+ //自由控制缩放比例
+ private static final float MAX_SCALE = 1f;
+ private static final float MIN_SCALE = 0.85f;//0.85f
+
+ @Override
+ public void transformPage(@NotNull View page, float position) {
+
+ if (position <= 1) {
+ float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
+ page.setScaleX(scaleFactor);
+ if (position > 0) {
+ page.setTranslationX(-scaleFactor * 2);
+ } else if (position < 0) {
+ page.setTranslationX(scaleFactor * 2);
+ }
+ page.setScaleY(scaleFactor);
+ } else {
+ page.setScaleX(MIN_SCALE);
+ page.setScaleY(MIN_SCALE);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index bc6bbca..6a93d0f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -114,7 +114,7 @@
private String id;
private String changeState;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private MediaPlayer mediaPlayer;
private QMUITipDialog submitDialog;
@@ -293,7 +293,7 @@
//核实照片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -353,7 +353,7 @@
//处理照片
String processImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(processImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = processImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
index 23f3260..d4f61b1 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -148,7 +147,7 @@
//核实图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -173,7 +172,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -198,7 +197,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
index e25aefd..2b65bb8 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
@@ -30,7 +30,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -122,7 +121,7 @@
//核实图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -147,7 +146,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -172,7 +171,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 7455b6e..da63f04 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -114,7 +114,7 @@
private String caseReason;
private String approvalResult;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseDetailPresenterImpl caseDetailPresenter;
@@ -179,7 +179,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
index 3079857..443bcc5 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -117,7 +116,7 @@
//最初始的案卷图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -142,7 +141,7 @@
//案卷处理时候上传的图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
index 67621a8..2bf82a6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
@@ -171,7 +171,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
index 7e88437..5e8eee6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -118,7 +117,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
index e65fa0a..cf3e900 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -121,7 +121,7 @@
private QMUITipDialog submitDialog, qmuiTipDialog;
private UploadImagePresenterImpl uploadImagePresenter;
private List imageList = new ArrayList<>();//服务器返回的拍照数据集
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private String eorc = "请选择";
private String typeCode = "请选择";
private String typeDetailCode = "请选择";//默认值,防止用户不选择直接跳过
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
index 253c2ab..b4d3bac 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
@@ -89,7 +89,7 @@
private List smallClassBeans;
private QMUITipDialog submitDialog;
private UploadImagePresenterImpl uploadImagePresenter;
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List imageList = new ArrayList<>();//上传到服务器的数据集
private String eorc = "请选择";
private String typeCode = "请选择";
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
index 8a155f6..926aecb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -121,7 +120,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
index c30bd0f..509d0be 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
@@ -139,7 +139,7 @@
private MediaPlayer mediaPlayer;
private UploadImagePresenterImpl uploadImagePresenter;
private QMUITipDialog submitDialog;
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseNextNodePresenterImpl caseNextNodePresenter;
private CaseHandlePresenterImpl caseHandlePresenter;
@@ -226,7 +226,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
index bfd99ef..1064b85 100644
--- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
@@ -30,7 +30,6 @@
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
import com.casic.dcms.utils.callback.ILocationListener;
-import com.casic.dcms.widgets.BigPictureDialog;
import com.esri.arcgisruntime.geometry.Point;
import com.esri.arcgisruntime.layers.ArcGISTiledLayer;
import com.esri.arcgisruntime.mapping.ArcGISMap;
@@ -50,7 +49,6 @@
import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
import java.io.File;
-import java.util.Collections;
import butterknife.BindView;
import butterknife.OnClick;
@@ -254,11 +252,7 @@
pictureView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- new BigPictureDialog.Builder()
- .setContext(context)
- .setImageIndex(0)
- .setImageList(Collections.singletonList(realPath))
- .build().show();
+
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
index d78f2f5..7faa01b 100644
--- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
@@ -75,7 +75,7 @@
private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter;
private ImageRecycleViewAdapter imageAdapter;
private QMUITipDialog submitDialog;
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private String gridId, shopID;
diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
index 170e274..c07978f 100644
--- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
@@ -17,6 +17,7 @@
private static Context context;
private static File audioDir;
private static File imageDir;
+ private static File waterImageDir;
private static File downloadDir;
public static void initFileConfig(Context context) {
@@ -42,6 +43,13 @@
Log.d(TAG, "initFileConfig: 创建CompressImageFile文件夹");
}
}
+ waterImageDir = new File(parentDir, "WaterImageFile");
+ if (!waterImageDir.exists()) {
+ boolean mkAudioDir = waterImageDir.mkdir();
+ if (mkAudioDir) {
+ Log.d(TAG, "initFileConfig: 创建WaterImageFile文件夹");
+ }
+ }
downloadDir = new File(parentDir, "DownloadFile");
if (!downloadDir.exists()) {
boolean mkDownDir = downloadDir.mkdir();
@@ -101,6 +109,36 @@
return imageDir.toString();
}
+ static File getWaterImageFile() {
+ //如果第一次初始化文件夹未创建成功,那就调用的时候再单独创建一次文件夹
+ if (waterImageDir == null) {
+ File parentDir = new File(context.getFilesDir().getAbsolutePath(), "Demo");
+ if (!parentDir.exists()) {
+ boolean mkdir = parentDir.mkdir();
+ if (mkdir) {
+ Log.d(TAG, "getWaterImageFile: 创建Demo文件夹");
+ }
+ }
+ waterImageDir = new File(parentDir, "WaterImageFile");
+ if (!waterImageDir.exists()) {
+ boolean mkAudioDir = waterImageDir.mkdir();
+ if (mkAudioDir) {
+ Log.d(TAG, "getWaterImageFile: 创建WaterImageFile文件夹");
+ }
+ }
+ }
+ String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date());
+ File imageFile = new File(waterImageDir + File.separator + "IMG_" + timeStamp + ".png");
+ if (!imageFile.exists()) {
+ try {
+ imageFile.createNewFile();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ return imageFile;
+ }
+
//储存下载文件的目录
static String getDownloadFilePath() {
if (downloadDir == null) {
diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/app/build.gradle b/app/build.gradle
index 045dd9e..1cc4d59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,7 +52,7 @@
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//图片加载框架
- implementation 'com.github.bumptech.glide:glide:4.5.0'
+ implementation 'com.github.bumptech.glide:glide:4.7.1'
//MVP网络请求框架retrofit2+rxjava
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -71,10 +71,10 @@
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
implementation 'com.github.huangyanbin:SmartTable:1.7.1'
- implementation 'com.getui:gtsdk:3.1.4.0'
//个推SDK
- implementation 'com.getui:gtc:3.1.0.0'
+ implementation 'com.getui:gtsdk:3.1.4.0'
//个推核心组件
+ implementation 'com.getui:gtc:3.1.0.0'
//数据库框架
implementation 'org.greenrobot:greendao:3.3.0'
//沉浸式状态栏。基础依赖包,必须要依赖
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 25931cd..92c60e5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -76,6 +76,7 @@
+
+
+
+
+
+
urls = getIntent().getStringArrayListExtra("images");
+ if (urls == null || urls.size() == 0) {
+ return;
+ }
+ pageNumberView.setText("(" + (index + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ imagePagerView.setAdapter(new BigImageAdapter(this, urls));
+ imagePagerView.setCurrentItem(index);
+ imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
+ imagePagerView.setPageMargin(10);//控制两幅图之间的间距
+ imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
+ imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ pageNumberView.setText("(" + (position + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+
+ static class BigImageAdapter extends PagerAdapter {
+
+ private Context context;
+ private List data;
+
+ BigImageAdapter(@NotNull Context context, @NotNull List imageList) {
+ this.context = context;
+ this.data = imageList;
+ }
+
+ @Override
+ public int getCount() {
+ return data.size();
+ }
+
+ @Override
+ public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
+ return view == object;
+ }
+
+ @NotNull
+ @Override
+ public Object instantiateItem(@NotNull ViewGroup container, int position) {
+ View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
+ PhotoView photoView = view.findViewById(R.id.photoView);
+ Glide.with(context).load(data.get(position)).into(photoView);
+ photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ container.addView(view);
+ return view;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
+ container.removeView((View) object);
+ }
+ }
+
+ //设置切换动画
+ public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
+ //自由控制缩放比例
+ private static final float MAX_SCALE = 1f;
+ private static final float MIN_SCALE = 0.85f;//0.85f
+
+ @Override
+ public void transformPage(@NotNull View page, float position) {
+
+ if (position <= 1) {
+ float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
+ page.setScaleX(scaleFactor);
+ if (position > 0) {
+ page.setTranslationX(-scaleFactor * 2);
+ } else if (position < 0) {
+ page.setTranslationX(scaleFactor * 2);
+ }
+ page.setScaleY(scaleFactor);
+ } else {
+ page.setScaleX(MIN_SCALE);
+ page.setScaleY(MIN_SCALE);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index bc6bbca..6a93d0f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -114,7 +114,7 @@
private String id;
private String changeState;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private MediaPlayer mediaPlayer;
private QMUITipDialog submitDialog;
@@ -293,7 +293,7 @@
//核实照片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -353,7 +353,7 @@
//处理照片
String processImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(processImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = processImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
index 23f3260..d4f61b1 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -148,7 +147,7 @@
//核实图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -173,7 +172,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -198,7 +197,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
index e25aefd..2b65bb8 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
@@ -30,7 +30,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -122,7 +121,7 @@
//核实图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -147,7 +146,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -172,7 +171,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 7455b6e..da63f04 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -114,7 +114,7 @@
private String caseReason;
private String approvalResult;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseDetailPresenterImpl caseDetailPresenter;
@@ -179,7 +179,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
index 3079857..443bcc5 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -117,7 +116,7 @@
//最初始的案卷图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -142,7 +141,7 @@
//案卷处理时候上传的图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
index 67621a8..2bf82a6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
@@ -171,7 +171,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
index 7e88437..5e8eee6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -118,7 +117,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
index e65fa0a..cf3e900 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -121,7 +121,7 @@
private QMUITipDialog submitDialog, qmuiTipDialog;
private UploadImagePresenterImpl uploadImagePresenter;
private List imageList = new ArrayList<>();//服务器返回的拍照数据集
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private String eorc = "请选择";
private String typeCode = "请选择";
private String typeDetailCode = "请选择";//默认值,防止用户不选择直接跳过
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
index 253c2ab..b4d3bac 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
@@ -89,7 +89,7 @@
private List smallClassBeans;
private QMUITipDialog submitDialog;
private UploadImagePresenterImpl uploadImagePresenter;
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List imageList = new ArrayList<>();//上传到服务器的数据集
private String eorc = "请选择";
private String typeCode = "请选择";
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
index 8a155f6..926aecb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -121,7 +120,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
index c30bd0f..509d0be 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
@@ -139,7 +139,7 @@
private MediaPlayer mediaPlayer;
private UploadImagePresenterImpl uploadImagePresenter;
private QMUITipDialog submitDialog;
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseNextNodePresenterImpl caseNextNodePresenter;
private CaseHandlePresenterImpl caseHandlePresenter;
@@ -226,7 +226,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
index bfd99ef..1064b85 100644
--- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
@@ -30,7 +30,6 @@
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
import com.casic.dcms.utils.callback.ILocationListener;
-import com.casic.dcms.widgets.BigPictureDialog;
import com.esri.arcgisruntime.geometry.Point;
import com.esri.arcgisruntime.layers.ArcGISTiledLayer;
import com.esri.arcgisruntime.mapping.ArcGISMap;
@@ -50,7 +49,6 @@
import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
import java.io.File;
-import java.util.Collections;
import butterknife.BindView;
import butterknife.OnClick;
@@ -254,11 +252,7 @@
pictureView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- new BigPictureDialog.Builder()
- .setContext(context)
- .setImageIndex(0)
- .setImageList(Collections.singletonList(realPath))
- .build().show();
+
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
index d78f2f5..7faa01b 100644
--- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
@@ -75,7 +75,7 @@
private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter;
private ImageRecycleViewAdapter imageAdapter;
private QMUITipDialog submitDialog;
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private String gridId, shopID;
diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
index 170e274..c07978f 100644
--- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
@@ -17,6 +17,7 @@
private static Context context;
private static File audioDir;
private static File imageDir;
+ private static File waterImageDir;
private static File downloadDir;
public static void initFileConfig(Context context) {
@@ -42,6 +43,13 @@
Log.d(TAG, "initFileConfig: 创建CompressImageFile文件夹");
}
}
+ waterImageDir = new File(parentDir, "WaterImageFile");
+ if (!waterImageDir.exists()) {
+ boolean mkAudioDir = waterImageDir.mkdir();
+ if (mkAudioDir) {
+ Log.d(TAG, "initFileConfig: 创建WaterImageFile文件夹");
+ }
+ }
downloadDir = new File(parentDir, "DownloadFile");
if (!downloadDir.exists()) {
boolean mkDownDir = downloadDir.mkdir();
@@ -101,6 +109,36 @@
return imageDir.toString();
}
+ static File getWaterImageFile() {
+ //如果第一次初始化文件夹未创建成功,那就调用的时候再单独创建一次文件夹
+ if (waterImageDir == null) {
+ File parentDir = new File(context.getFilesDir().getAbsolutePath(), "Demo");
+ if (!parentDir.exists()) {
+ boolean mkdir = parentDir.mkdir();
+ if (mkdir) {
+ Log.d(TAG, "getWaterImageFile: 创建Demo文件夹");
+ }
+ }
+ waterImageDir = new File(parentDir, "WaterImageFile");
+ if (!waterImageDir.exists()) {
+ boolean mkAudioDir = waterImageDir.mkdir();
+ if (mkAudioDir) {
+ Log.d(TAG, "getWaterImageFile: 创建WaterImageFile文件夹");
+ }
+ }
+ }
+ String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date());
+ File imageFile = new File(waterImageDir + File.separator + "IMG_" + timeStamp + ".png");
+ if (!imageFile.exists()) {
+ try {
+ imageFile.createNewFile();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ return imageFile;
+ }
+
//储存下载文件的目录
static String getDownloadFilePath() {
if (downloadDir == null) {
diff --git a/app/src/main/java/com/casic/dcms/utils/OtherUtils.java b/app/src/main/java/com/casic/dcms/utils/OtherUtils.java
index 407d70e..55a56a3 100644
--- a/app/src/main/java/com/casic/dcms/utils/OtherUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/OtherUtils.java
@@ -5,6 +5,11 @@
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Rect;
import android.os.Build;
import android.provider.Settings;
import android.telephony.TelephonyManager;
@@ -13,9 +18,10 @@
import androidx.core.app.ActivityCompat;
+import com.casic.dcms.ui.BigImageActivity;
import com.casic.dcms.ui.CaseProcessActivity;
import com.casic.dcms.utils.callback.IDownloadListener;
-import com.casic.dcms.widgets.BigPictureDialog;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import org.jetbrains.annotations.NotNull;
@@ -24,7 +30,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
-import java.util.List;
+import java.util.ArrayList;
import okhttp3.Call;
import okhttp3.Callback;
@@ -36,9 +42,61 @@
public class OtherUtils {
private static final String TAG = "OtherUtils";
+ /**
+ * 绘制文字到右下角
+ */
+ public static String drawTextToRightBottom(Context context, Bitmap bitmap, String name, String date, String time) {
+ //初始化画笔
+ Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ paint.setColor(Color.RED);
+ paint.setDither(true); // 获取跟清晰的图像采样
+ paint.setFilterBitmap(true);// 过滤一些
+ paint.setTextSize(QMUIDisplayHelper.dp2px(context, 20));
+ Rect nameBounds = new Rect();
+ paint.getTextBounds(name, 0, name.length(), nameBounds);
+ Rect dateBounds = new Rect();
+ paint.getTextBounds(date, 0, date.length(), dateBounds);
+ Rect timeBounds = new Rect();
+ paint.getTextBounds(time, 0, time.length(), timeBounds);
+
+ //添加水印
+ android.graphics.Bitmap.Config bitmapConfig = bitmap.getConfig();
+ if (bitmapConfig == null) {
+ bitmapConfig = Bitmap.Config.RGB_565;
+ }
+ bitmap = bitmap.copy(bitmapConfig, true);
+
+ Canvas canvas = new Canvas(bitmap);
+ final int bitmapWidth = bitmap.getWidth();
+ final int bitmapHeight = bitmap.getHeight();
+ final int paddingRight = QMUIDisplayHelper.dp2px(context, 10);
+ //有几行就写几行
+ canvas.drawText(name, bitmapWidth - nameBounds.width() - paddingRight,
+ bitmapHeight - QMUIDisplayHelper.dp2px(context, 55), paint);
+ canvas.drawText(date, bitmapWidth - dateBounds.width() - paddingRight,
+ bitmapHeight - QMUIDisplayHelper.dp2px(context, 30), paint);
+ canvas.drawText(time, bitmapWidth - timeBounds.width() - paddingRight,
+ bitmapHeight - QMUIDisplayHelper.dp2px(context, 10), paint);
+
+ //将带有水印的图片保存
+ File file = FileUtils.getWaterImageFile();
+ try {
+ FileOutputStream fos = new FileOutputStream(file);
+ bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
+ fos.flush();
+ fos.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return file.getAbsolutePath();
+ }
+
//查看大图
- public static void showBigImage(Context context, int index, List imageList) {
- new BigPictureDialog.Builder().setContext(context).setImageIndex(index).setImageList(imageList).build().show();
+ public static void showBigImage(Context context, int index, ArrayList imageList) {
+ Intent intent = new Intent(context, BigImageActivity.class);
+ intent.putExtra("index", index);
+ intent.putStringArrayListExtra("images", imageList);
+ context.startActivity(intent);
}
//查看案卷处理记录
diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/app/build.gradle b/app/build.gradle
index 045dd9e..1cc4d59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,7 +52,7 @@
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//图片加载框架
- implementation 'com.github.bumptech.glide:glide:4.5.0'
+ implementation 'com.github.bumptech.glide:glide:4.7.1'
//MVP网络请求框架retrofit2+rxjava
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -71,10 +71,10 @@
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
implementation 'com.github.huangyanbin:SmartTable:1.7.1'
- implementation 'com.getui:gtsdk:3.1.4.0'
//个推SDK
- implementation 'com.getui:gtc:3.1.0.0'
+ implementation 'com.getui:gtsdk:3.1.4.0'
//个推核心组件
+ implementation 'com.getui:gtc:3.1.0.0'
//数据库框架
implementation 'org.greenrobot:greendao:3.3.0'
//沉浸式状态栏。基础依赖包,必须要依赖
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 25931cd..92c60e5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -76,6 +76,7 @@
+
+
+
+
+
+
urls = getIntent().getStringArrayListExtra("images");
+ if (urls == null || urls.size() == 0) {
+ return;
+ }
+ pageNumberView.setText("(" + (index + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ imagePagerView.setAdapter(new BigImageAdapter(this, urls));
+ imagePagerView.setCurrentItem(index);
+ imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
+ imagePagerView.setPageMargin(10);//控制两幅图之间的间距
+ imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
+ imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ pageNumberView.setText("(" + (position + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+
+ static class BigImageAdapter extends PagerAdapter {
+
+ private Context context;
+ private List data;
+
+ BigImageAdapter(@NotNull Context context, @NotNull List imageList) {
+ this.context = context;
+ this.data = imageList;
+ }
+
+ @Override
+ public int getCount() {
+ return data.size();
+ }
+
+ @Override
+ public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
+ return view == object;
+ }
+
+ @NotNull
+ @Override
+ public Object instantiateItem(@NotNull ViewGroup container, int position) {
+ View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
+ PhotoView photoView = view.findViewById(R.id.photoView);
+ Glide.with(context).load(data.get(position)).into(photoView);
+ photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ container.addView(view);
+ return view;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
+ container.removeView((View) object);
+ }
+ }
+
+ //设置切换动画
+ public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
+ //自由控制缩放比例
+ private static final float MAX_SCALE = 1f;
+ private static final float MIN_SCALE = 0.85f;//0.85f
+
+ @Override
+ public void transformPage(@NotNull View page, float position) {
+
+ if (position <= 1) {
+ float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
+ page.setScaleX(scaleFactor);
+ if (position > 0) {
+ page.setTranslationX(-scaleFactor * 2);
+ } else if (position < 0) {
+ page.setTranslationX(scaleFactor * 2);
+ }
+ page.setScaleY(scaleFactor);
+ } else {
+ page.setScaleX(MIN_SCALE);
+ page.setScaleY(MIN_SCALE);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index bc6bbca..6a93d0f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -114,7 +114,7 @@
private String id;
private String changeState;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private MediaPlayer mediaPlayer;
private QMUITipDialog submitDialog;
@@ -293,7 +293,7 @@
//核实照片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -353,7 +353,7 @@
//处理照片
String processImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(processImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = processImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
index 23f3260..d4f61b1 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -148,7 +147,7 @@
//核实图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -173,7 +172,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -198,7 +197,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
index e25aefd..2b65bb8 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
@@ -30,7 +30,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -122,7 +121,7 @@
//核实图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -147,7 +146,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -172,7 +171,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 7455b6e..da63f04 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -114,7 +114,7 @@
private String caseReason;
private String approvalResult;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseDetailPresenterImpl caseDetailPresenter;
@@ -179,7 +179,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
index 3079857..443bcc5 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -117,7 +116,7 @@
//最初始的案卷图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -142,7 +141,7 @@
//案卷处理时候上传的图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
index 67621a8..2bf82a6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
@@ -171,7 +171,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
index 7e88437..5e8eee6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -118,7 +117,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
index e65fa0a..cf3e900 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -121,7 +121,7 @@
private QMUITipDialog submitDialog, qmuiTipDialog;
private UploadImagePresenterImpl uploadImagePresenter;
private List imageList = new ArrayList<>();//服务器返回的拍照数据集
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private String eorc = "请选择";
private String typeCode = "请选择";
private String typeDetailCode = "请选择";//默认值,防止用户不选择直接跳过
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
index 253c2ab..b4d3bac 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
@@ -89,7 +89,7 @@
private List smallClassBeans;
private QMUITipDialog submitDialog;
private UploadImagePresenterImpl uploadImagePresenter;
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List imageList = new ArrayList<>();//上传到服务器的数据集
private String eorc = "请选择";
private String typeCode = "请选择";
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
index 8a155f6..926aecb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -121,7 +120,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
index c30bd0f..509d0be 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
@@ -139,7 +139,7 @@
private MediaPlayer mediaPlayer;
private UploadImagePresenterImpl uploadImagePresenter;
private QMUITipDialog submitDialog;
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseNextNodePresenterImpl caseNextNodePresenter;
private CaseHandlePresenterImpl caseHandlePresenter;
@@ -226,7 +226,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
index bfd99ef..1064b85 100644
--- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
@@ -30,7 +30,6 @@
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
import com.casic.dcms.utils.callback.ILocationListener;
-import com.casic.dcms.widgets.BigPictureDialog;
import com.esri.arcgisruntime.geometry.Point;
import com.esri.arcgisruntime.layers.ArcGISTiledLayer;
import com.esri.arcgisruntime.mapping.ArcGISMap;
@@ -50,7 +49,6 @@
import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
import java.io.File;
-import java.util.Collections;
import butterknife.BindView;
import butterknife.OnClick;
@@ -254,11 +252,7 @@
pictureView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- new BigPictureDialog.Builder()
- .setContext(context)
- .setImageIndex(0)
- .setImageList(Collections.singletonList(realPath))
- .build().show();
+
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
index d78f2f5..7faa01b 100644
--- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
@@ -75,7 +75,7 @@
private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter;
private ImageRecycleViewAdapter imageAdapter;
private QMUITipDialog submitDialog;
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private String gridId, shopID;
diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
index 170e274..c07978f 100644
--- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
@@ -17,6 +17,7 @@
private static Context context;
private static File audioDir;
private static File imageDir;
+ private static File waterImageDir;
private static File downloadDir;
public static void initFileConfig(Context context) {
@@ -42,6 +43,13 @@
Log.d(TAG, "initFileConfig: 创建CompressImageFile文件夹");
}
}
+ waterImageDir = new File(parentDir, "WaterImageFile");
+ if (!waterImageDir.exists()) {
+ boolean mkAudioDir = waterImageDir.mkdir();
+ if (mkAudioDir) {
+ Log.d(TAG, "initFileConfig: 创建WaterImageFile文件夹");
+ }
+ }
downloadDir = new File(parentDir, "DownloadFile");
if (!downloadDir.exists()) {
boolean mkDownDir = downloadDir.mkdir();
@@ -101,6 +109,36 @@
return imageDir.toString();
}
+ static File getWaterImageFile() {
+ //如果第一次初始化文件夹未创建成功,那就调用的时候再单独创建一次文件夹
+ if (waterImageDir == null) {
+ File parentDir = new File(context.getFilesDir().getAbsolutePath(), "Demo");
+ if (!parentDir.exists()) {
+ boolean mkdir = parentDir.mkdir();
+ if (mkdir) {
+ Log.d(TAG, "getWaterImageFile: 创建Demo文件夹");
+ }
+ }
+ waterImageDir = new File(parentDir, "WaterImageFile");
+ if (!waterImageDir.exists()) {
+ boolean mkAudioDir = waterImageDir.mkdir();
+ if (mkAudioDir) {
+ Log.d(TAG, "getWaterImageFile: 创建WaterImageFile文件夹");
+ }
+ }
+ }
+ String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date());
+ File imageFile = new File(waterImageDir + File.separator + "IMG_" + timeStamp + ".png");
+ if (!imageFile.exists()) {
+ try {
+ imageFile.createNewFile();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ return imageFile;
+ }
+
//储存下载文件的目录
static String getDownloadFilePath() {
if (downloadDir == null) {
diff --git a/app/src/main/java/com/casic/dcms/utils/OtherUtils.java b/app/src/main/java/com/casic/dcms/utils/OtherUtils.java
index 407d70e..55a56a3 100644
--- a/app/src/main/java/com/casic/dcms/utils/OtherUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/OtherUtils.java
@@ -5,6 +5,11 @@
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Rect;
import android.os.Build;
import android.provider.Settings;
import android.telephony.TelephonyManager;
@@ -13,9 +18,10 @@
import androidx.core.app.ActivityCompat;
+import com.casic.dcms.ui.BigImageActivity;
import com.casic.dcms.ui.CaseProcessActivity;
import com.casic.dcms.utils.callback.IDownloadListener;
-import com.casic.dcms.widgets.BigPictureDialog;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import org.jetbrains.annotations.NotNull;
@@ -24,7 +30,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
-import java.util.List;
+import java.util.ArrayList;
import okhttp3.Call;
import okhttp3.Callback;
@@ -36,9 +42,61 @@
public class OtherUtils {
private static final String TAG = "OtherUtils";
+ /**
+ * 绘制文字到右下角
+ */
+ public static String drawTextToRightBottom(Context context, Bitmap bitmap, String name, String date, String time) {
+ //初始化画笔
+ Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ paint.setColor(Color.RED);
+ paint.setDither(true); // 获取跟清晰的图像采样
+ paint.setFilterBitmap(true);// 过滤一些
+ paint.setTextSize(QMUIDisplayHelper.dp2px(context, 20));
+ Rect nameBounds = new Rect();
+ paint.getTextBounds(name, 0, name.length(), nameBounds);
+ Rect dateBounds = new Rect();
+ paint.getTextBounds(date, 0, date.length(), dateBounds);
+ Rect timeBounds = new Rect();
+ paint.getTextBounds(time, 0, time.length(), timeBounds);
+
+ //添加水印
+ android.graphics.Bitmap.Config bitmapConfig = bitmap.getConfig();
+ if (bitmapConfig == null) {
+ bitmapConfig = Bitmap.Config.RGB_565;
+ }
+ bitmap = bitmap.copy(bitmapConfig, true);
+
+ Canvas canvas = new Canvas(bitmap);
+ final int bitmapWidth = bitmap.getWidth();
+ final int bitmapHeight = bitmap.getHeight();
+ final int paddingRight = QMUIDisplayHelper.dp2px(context, 10);
+ //有几行就写几行
+ canvas.drawText(name, bitmapWidth - nameBounds.width() - paddingRight,
+ bitmapHeight - QMUIDisplayHelper.dp2px(context, 55), paint);
+ canvas.drawText(date, bitmapWidth - dateBounds.width() - paddingRight,
+ bitmapHeight - QMUIDisplayHelper.dp2px(context, 30), paint);
+ canvas.drawText(time, bitmapWidth - timeBounds.width() - paddingRight,
+ bitmapHeight - QMUIDisplayHelper.dp2px(context, 10), paint);
+
+ //将带有水印的图片保存
+ File file = FileUtils.getWaterImageFile();
+ try {
+ FileOutputStream fos = new FileOutputStream(file);
+ bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
+ fos.flush();
+ fos.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return file.getAbsolutePath();
+ }
+
//查看大图
- public static void showBigImage(Context context, int index, List imageList) {
- new BigPictureDialog.Builder().setContext(context).setImageIndex(index).setImageList(imageList).build().show();
+ public static void showBigImage(Context context, int index, ArrayList imageList) {
+ Intent intent = new Intent(context, BigImageActivity.class);
+ intent.putExtra("index", index);
+ intent.putStringArrayListExtra("images", imageList);
+ context.startActivity(intent);
}
//查看案卷处理记录
diff --git a/app/src/main/java/com/casic/dcms/utils/WaterImageFileProvider.java b/app/src/main/java/com/casic/dcms/utils/WaterImageFileProvider.java
new file mode 100644
index 0000000..4102901
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/utils/WaterImageFileProvider.java
@@ -0,0 +1,6 @@
+package com.casic.dcms.utils;
+
+import androidx.core.content.FileProvider;
+
+public class WaterImageFileProvider extends FileProvider {
+}
diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/app/build.gradle b/app/build.gradle
index 045dd9e..1cc4d59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,7 +52,7 @@
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//图片加载框架
- implementation 'com.github.bumptech.glide:glide:4.5.0'
+ implementation 'com.github.bumptech.glide:glide:4.7.1'
//MVP网络请求框架retrofit2+rxjava
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -71,10 +71,10 @@
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
implementation 'com.github.huangyanbin:SmartTable:1.7.1'
- implementation 'com.getui:gtsdk:3.1.4.0'
//个推SDK
- implementation 'com.getui:gtc:3.1.0.0'
+ implementation 'com.getui:gtsdk:3.1.4.0'
//个推核心组件
+ implementation 'com.getui:gtc:3.1.0.0'
//数据库框架
implementation 'org.greenrobot:greendao:3.3.0'
//沉浸式状态栏。基础依赖包,必须要依赖
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 25931cd..92c60e5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -76,6 +76,7 @@
+
+
+
+
+
+
urls = getIntent().getStringArrayListExtra("images");
+ if (urls == null || urls.size() == 0) {
+ return;
+ }
+ pageNumberView.setText("(" + (index + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ imagePagerView.setAdapter(new BigImageAdapter(this, urls));
+ imagePagerView.setCurrentItem(index);
+ imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
+ imagePagerView.setPageMargin(10);//控制两幅图之间的间距
+ imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
+ imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ pageNumberView.setText("(" + (position + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+
+ static class BigImageAdapter extends PagerAdapter {
+
+ private Context context;
+ private List data;
+
+ BigImageAdapter(@NotNull Context context, @NotNull List imageList) {
+ this.context = context;
+ this.data = imageList;
+ }
+
+ @Override
+ public int getCount() {
+ return data.size();
+ }
+
+ @Override
+ public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
+ return view == object;
+ }
+
+ @NotNull
+ @Override
+ public Object instantiateItem(@NotNull ViewGroup container, int position) {
+ View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
+ PhotoView photoView = view.findViewById(R.id.photoView);
+ Glide.with(context).load(data.get(position)).into(photoView);
+ photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ container.addView(view);
+ return view;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
+ container.removeView((View) object);
+ }
+ }
+
+ //设置切换动画
+ public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
+ //自由控制缩放比例
+ private static final float MAX_SCALE = 1f;
+ private static final float MIN_SCALE = 0.85f;//0.85f
+
+ @Override
+ public void transformPage(@NotNull View page, float position) {
+
+ if (position <= 1) {
+ float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
+ page.setScaleX(scaleFactor);
+ if (position > 0) {
+ page.setTranslationX(-scaleFactor * 2);
+ } else if (position < 0) {
+ page.setTranslationX(scaleFactor * 2);
+ }
+ page.setScaleY(scaleFactor);
+ } else {
+ page.setScaleX(MIN_SCALE);
+ page.setScaleY(MIN_SCALE);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index bc6bbca..6a93d0f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -114,7 +114,7 @@
private String id;
private String changeState;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private MediaPlayer mediaPlayer;
private QMUITipDialog submitDialog;
@@ -293,7 +293,7 @@
//核实照片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -353,7 +353,7 @@
//处理照片
String processImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(processImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = processImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
index 23f3260..d4f61b1 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -148,7 +147,7 @@
//核实图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -173,7 +172,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -198,7 +197,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
index e25aefd..2b65bb8 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
@@ -30,7 +30,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -122,7 +121,7 @@
//核实图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -147,7 +146,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -172,7 +171,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 7455b6e..da63f04 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -114,7 +114,7 @@
private String caseReason;
private String approvalResult;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseDetailPresenterImpl caseDetailPresenter;
@@ -179,7 +179,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
index 3079857..443bcc5 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -117,7 +116,7 @@
//最初始的案卷图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -142,7 +141,7 @@
//案卷处理时候上传的图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
index 67621a8..2bf82a6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
@@ -171,7 +171,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
index 7e88437..5e8eee6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -118,7 +117,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
index e65fa0a..cf3e900 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -121,7 +121,7 @@
private QMUITipDialog submitDialog, qmuiTipDialog;
private UploadImagePresenterImpl uploadImagePresenter;
private List imageList = new ArrayList<>();//服务器返回的拍照数据集
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private String eorc = "请选择";
private String typeCode = "请选择";
private String typeDetailCode = "请选择";//默认值,防止用户不选择直接跳过
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
index 253c2ab..b4d3bac 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
@@ -89,7 +89,7 @@
private List smallClassBeans;
private QMUITipDialog submitDialog;
private UploadImagePresenterImpl uploadImagePresenter;
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List imageList = new ArrayList<>();//上传到服务器的数据集
private String eorc = "请选择";
private String typeCode = "请选择";
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
index 8a155f6..926aecb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -121,7 +120,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
index c30bd0f..509d0be 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
@@ -139,7 +139,7 @@
private MediaPlayer mediaPlayer;
private UploadImagePresenterImpl uploadImagePresenter;
private QMUITipDialog submitDialog;
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseNextNodePresenterImpl caseNextNodePresenter;
private CaseHandlePresenterImpl caseHandlePresenter;
@@ -226,7 +226,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
index bfd99ef..1064b85 100644
--- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
@@ -30,7 +30,6 @@
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
import com.casic.dcms.utils.callback.ILocationListener;
-import com.casic.dcms.widgets.BigPictureDialog;
import com.esri.arcgisruntime.geometry.Point;
import com.esri.arcgisruntime.layers.ArcGISTiledLayer;
import com.esri.arcgisruntime.mapping.ArcGISMap;
@@ -50,7 +49,6 @@
import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
import java.io.File;
-import java.util.Collections;
import butterknife.BindView;
import butterknife.OnClick;
@@ -254,11 +252,7 @@
pictureView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- new BigPictureDialog.Builder()
- .setContext(context)
- .setImageIndex(0)
- .setImageList(Collections.singletonList(realPath))
- .build().show();
+
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
index d78f2f5..7faa01b 100644
--- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
@@ -75,7 +75,7 @@
private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter;
private ImageRecycleViewAdapter imageAdapter;
private QMUITipDialog submitDialog;
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private String gridId, shopID;
diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
index 170e274..c07978f 100644
--- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
@@ -17,6 +17,7 @@
private static Context context;
private static File audioDir;
private static File imageDir;
+ private static File waterImageDir;
private static File downloadDir;
public static void initFileConfig(Context context) {
@@ -42,6 +43,13 @@
Log.d(TAG, "initFileConfig: 创建CompressImageFile文件夹");
}
}
+ waterImageDir = new File(parentDir, "WaterImageFile");
+ if (!waterImageDir.exists()) {
+ boolean mkAudioDir = waterImageDir.mkdir();
+ if (mkAudioDir) {
+ Log.d(TAG, "initFileConfig: 创建WaterImageFile文件夹");
+ }
+ }
downloadDir = new File(parentDir, "DownloadFile");
if (!downloadDir.exists()) {
boolean mkDownDir = downloadDir.mkdir();
@@ -101,6 +109,36 @@
return imageDir.toString();
}
+ static File getWaterImageFile() {
+ //如果第一次初始化文件夹未创建成功,那就调用的时候再单独创建一次文件夹
+ if (waterImageDir == null) {
+ File parentDir = new File(context.getFilesDir().getAbsolutePath(), "Demo");
+ if (!parentDir.exists()) {
+ boolean mkdir = parentDir.mkdir();
+ if (mkdir) {
+ Log.d(TAG, "getWaterImageFile: 创建Demo文件夹");
+ }
+ }
+ waterImageDir = new File(parentDir, "WaterImageFile");
+ if (!waterImageDir.exists()) {
+ boolean mkAudioDir = waterImageDir.mkdir();
+ if (mkAudioDir) {
+ Log.d(TAG, "getWaterImageFile: 创建WaterImageFile文件夹");
+ }
+ }
+ }
+ String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date());
+ File imageFile = new File(waterImageDir + File.separator + "IMG_" + timeStamp + ".png");
+ if (!imageFile.exists()) {
+ try {
+ imageFile.createNewFile();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ return imageFile;
+ }
+
//储存下载文件的目录
static String getDownloadFilePath() {
if (downloadDir == null) {
diff --git a/app/src/main/java/com/casic/dcms/utils/OtherUtils.java b/app/src/main/java/com/casic/dcms/utils/OtherUtils.java
index 407d70e..55a56a3 100644
--- a/app/src/main/java/com/casic/dcms/utils/OtherUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/OtherUtils.java
@@ -5,6 +5,11 @@
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Rect;
import android.os.Build;
import android.provider.Settings;
import android.telephony.TelephonyManager;
@@ -13,9 +18,10 @@
import androidx.core.app.ActivityCompat;
+import com.casic.dcms.ui.BigImageActivity;
import com.casic.dcms.ui.CaseProcessActivity;
import com.casic.dcms.utils.callback.IDownloadListener;
-import com.casic.dcms.widgets.BigPictureDialog;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import org.jetbrains.annotations.NotNull;
@@ -24,7 +30,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
-import java.util.List;
+import java.util.ArrayList;
import okhttp3.Call;
import okhttp3.Callback;
@@ -36,9 +42,61 @@
public class OtherUtils {
private static final String TAG = "OtherUtils";
+ /**
+ * 绘制文字到右下角
+ */
+ public static String drawTextToRightBottom(Context context, Bitmap bitmap, String name, String date, String time) {
+ //初始化画笔
+ Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ paint.setColor(Color.RED);
+ paint.setDither(true); // 获取跟清晰的图像采样
+ paint.setFilterBitmap(true);// 过滤一些
+ paint.setTextSize(QMUIDisplayHelper.dp2px(context, 20));
+ Rect nameBounds = new Rect();
+ paint.getTextBounds(name, 0, name.length(), nameBounds);
+ Rect dateBounds = new Rect();
+ paint.getTextBounds(date, 0, date.length(), dateBounds);
+ Rect timeBounds = new Rect();
+ paint.getTextBounds(time, 0, time.length(), timeBounds);
+
+ //添加水印
+ android.graphics.Bitmap.Config bitmapConfig = bitmap.getConfig();
+ if (bitmapConfig == null) {
+ bitmapConfig = Bitmap.Config.RGB_565;
+ }
+ bitmap = bitmap.copy(bitmapConfig, true);
+
+ Canvas canvas = new Canvas(bitmap);
+ final int bitmapWidth = bitmap.getWidth();
+ final int bitmapHeight = bitmap.getHeight();
+ final int paddingRight = QMUIDisplayHelper.dp2px(context, 10);
+ //有几行就写几行
+ canvas.drawText(name, bitmapWidth - nameBounds.width() - paddingRight,
+ bitmapHeight - QMUIDisplayHelper.dp2px(context, 55), paint);
+ canvas.drawText(date, bitmapWidth - dateBounds.width() - paddingRight,
+ bitmapHeight - QMUIDisplayHelper.dp2px(context, 30), paint);
+ canvas.drawText(time, bitmapWidth - timeBounds.width() - paddingRight,
+ bitmapHeight - QMUIDisplayHelper.dp2px(context, 10), paint);
+
+ //将带有水印的图片保存
+ File file = FileUtils.getWaterImageFile();
+ try {
+ FileOutputStream fos = new FileOutputStream(file);
+ bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
+ fos.flush();
+ fos.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return file.getAbsolutePath();
+ }
+
//查看大图
- public static void showBigImage(Context context, int index, List imageList) {
- new BigPictureDialog.Builder().setContext(context).setImageIndex(index).setImageList(imageList).build().show();
+ public static void showBigImage(Context context, int index, ArrayList imageList) {
+ Intent intent = new Intent(context, BigImageActivity.class);
+ intent.putExtra("index", index);
+ intent.putStringArrayListExtra("images", imageList);
+ context.startActivity(intent);
}
//查看案卷处理记录
diff --git a/app/src/main/java/com/casic/dcms/utils/WaterImageFileProvider.java b/app/src/main/java/com/casic/dcms/utils/WaterImageFileProvider.java
new file mode 100644
index 0000000..4102901
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/utils/WaterImageFileProvider.java
@@ -0,0 +1,6 @@
+package com.casic.dcms.utils;
+
+import androidx.core.content.FileProvider;
+
+public class WaterImageFileProvider extends FileProvider {
+}
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
index f5dc11e..fb128b7 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
@@ -1,7 +1,10 @@
package com.casic.dcms.utils.retrofit;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
import android.util.Log;
+import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.bean.ActionResultBean;
import com.casic.dcms.bean.CaseCheckBean;
import com.casic.dcms.bean.CaseCheckedBean;
@@ -32,7 +35,10 @@
import com.casic.dcms.utils.AuthenticationHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.HttpConfig;
+import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.SaveKeyValues;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
import org.jetbrains.annotations.NotNull;
@@ -289,9 +295,16 @@
* http://xx.com/static/2019-10/8050891248624f2bbefedcb196ce89cb.jpeg
*/
public static Observable getImageUploadResult(File image) {
+ //改为上传带水印的图片
+ Bitmap bitmap = BitmapFactory.decodeFile(image.getAbsolutePath());
+ String path = OtherUtils.drawTextToRightBottom(BaseApplication.getInstance(), bitmap,
+ StringHelper.getUserAccount(),
+ TimeOrDateUtil.rTimestampToDate(System.currentTimeMillis()),
+ TimeOrDateUtil.timestampToTime(System.currentTimeMillis()));
+
Retrofit retrofit = createRetrofit();
RetrofitService service = retrofit.create(RetrofitService.class);
- RequestBody requestBody = RequestBody.create(MediaType.parse("image/png"), image);
+ RequestBody requestBody = RequestBody.create(MediaType.parse("image/png"), new File(path));
MultipartBody.Part imagePart = MultipartBody.Part.createFormData("file", image.getName(), requestBody);
return service.uploadImage(AuthenticationHelper.getToken(), imagePart);
}
diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/app/build.gradle b/app/build.gradle
index 045dd9e..1cc4d59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,7 +52,7 @@
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//图片加载框架
- implementation 'com.github.bumptech.glide:glide:4.5.0'
+ implementation 'com.github.bumptech.glide:glide:4.7.1'
//MVP网络请求框架retrofit2+rxjava
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -71,10 +71,10 @@
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
implementation 'com.github.huangyanbin:SmartTable:1.7.1'
- implementation 'com.getui:gtsdk:3.1.4.0'
//个推SDK
- implementation 'com.getui:gtc:3.1.0.0'
+ implementation 'com.getui:gtsdk:3.1.4.0'
//个推核心组件
+ implementation 'com.getui:gtc:3.1.0.0'
//数据库框架
implementation 'org.greenrobot:greendao:3.3.0'
//沉浸式状态栏。基础依赖包,必须要依赖
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 25931cd..92c60e5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -76,6 +76,7 @@
+
+
+
+
+
+
urls = getIntent().getStringArrayListExtra("images");
+ if (urls == null || urls.size() == 0) {
+ return;
+ }
+ pageNumberView.setText("(" + (index + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ imagePagerView.setAdapter(new BigImageAdapter(this, urls));
+ imagePagerView.setCurrentItem(index);
+ imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
+ imagePagerView.setPageMargin(10);//控制两幅图之间的间距
+ imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
+ imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ pageNumberView.setText("(" + (position + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+
+ static class BigImageAdapter extends PagerAdapter {
+
+ private Context context;
+ private List data;
+
+ BigImageAdapter(@NotNull Context context, @NotNull List imageList) {
+ this.context = context;
+ this.data = imageList;
+ }
+
+ @Override
+ public int getCount() {
+ return data.size();
+ }
+
+ @Override
+ public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
+ return view == object;
+ }
+
+ @NotNull
+ @Override
+ public Object instantiateItem(@NotNull ViewGroup container, int position) {
+ View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
+ PhotoView photoView = view.findViewById(R.id.photoView);
+ Glide.with(context).load(data.get(position)).into(photoView);
+ photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ container.addView(view);
+ return view;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
+ container.removeView((View) object);
+ }
+ }
+
+ //设置切换动画
+ public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
+ //自由控制缩放比例
+ private static final float MAX_SCALE = 1f;
+ private static final float MIN_SCALE = 0.85f;//0.85f
+
+ @Override
+ public void transformPage(@NotNull View page, float position) {
+
+ if (position <= 1) {
+ float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
+ page.setScaleX(scaleFactor);
+ if (position > 0) {
+ page.setTranslationX(-scaleFactor * 2);
+ } else if (position < 0) {
+ page.setTranslationX(scaleFactor * 2);
+ }
+ page.setScaleY(scaleFactor);
+ } else {
+ page.setScaleX(MIN_SCALE);
+ page.setScaleY(MIN_SCALE);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index bc6bbca..6a93d0f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -114,7 +114,7 @@
private String id;
private String changeState;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private MediaPlayer mediaPlayer;
private QMUITipDialog submitDialog;
@@ -293,7 +293,7 @@
//核实照片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -353,7 +353,7 @@
//处理照片
String processImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(processImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = processImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
index 23f3260..d4f61b1 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -148,7 +147,7 @@
//核实图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -173,7 +172,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -198,7 +197,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
index e25aefd..2b65bb8 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
@@ -30,7 +30,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -122,7 +121,7 @@
//核实图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -147,7 +146,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -172,7 +171,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 7455b6e..da63f04 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -114,7 +114,7 @@
private String caseReason;
private String approvalResult;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseDetailPresenterImpl caseDetailPresenter;
@@ -179,7 +179,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
index 3079857..443bcc5 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -117,7 +116,7 @@
//最初始的案卷图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -142,7 +141,7 @@
//案卷处理时候上传的图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
index 67621a8..2bf82a6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
@@ -171,7 +171,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
index 7e88437..5e8eee6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -118,7 +117,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
index e65fa0a..cf3e900 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -121,7 +121,7 @@
private QMUITipDialog submitDialog, qmuiTipDialog;
private UploadImagePresenterImpl uploadImagePresenter;
private List imageList = new ArrayList<>();//服务器返回的拍照数据集
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private String eorc = "请选择";
private String typeCode = "请选择";
private String typeDetailCode = "请选择";//默认值,防止用户不选择直接跳过
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
index 253c2ab..b4d3bac 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
@@ -89,7 +89,7 @@
private List smallClassBeans;
private QMUITipDialog submitDialog;
private UploadImagePresenterImpl uploadImagePresenter;
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List imageList = new ArrayList<>();//上传到服务器的数据集
private String eorc = "请选择";
private String typeCode = "请选择";
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
index 8a155f6..926aecb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -121,7 +120,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
index c30bd0f..509d0be 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
@@ -139,7 +139,7 @@
private MediaPlayer mediaPlayer;
private UploadImagePresenterImpl uploadImagePresenter;
private QMUITipDialog submitDialog;
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseNextNodePresenterImpl caseNextNodePresenter;
private CaseHandlePresenterImpl caseHandlePresenter;
@@ -226,7 +226,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
index bfd99ef..1064b85 100644
--- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
@@ -30,7 +30,6 @@
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
import com.casic.dcms.utils.callback.ILocationListener;
-import com.casic.dcms.widgets.BigPictureDialog;
import com.esri.arcgisruntime.geometry.Point;
import com.esri.arcgisruntime.layers.ArcGISTiledLayer;
import com.esri.arcgisruntime.mapping.ArcGISMap;
@@ -50,7 +49,6 @@
import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
import java.io.File;
-import java.util.Collections;
import butterknife.BindView;
import butterknife.OnClick;
@@ -254,11 +252,7 @@
pictureView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- new BigPictureDialog.Builder()
- .setContext(context)
- .setImageIndex(0)
- .setImageList(Collections.singletonList(realPath))
- .build().show();
+
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
index d78f2f5..7faa01b 100644
--- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
@@ -75,7 +75,7 @@
private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter;
private ImageRecycleViewAdapter imageAdapter;
private QMUITipDialog submitDialog;
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private String gridId, shopID;
diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
index 170e274..c07978f 100644
--- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
@@ -17,6 +17,7 @@
private static Context context;
private static File audioDir;
private static File imageDir;
+ private static File waterImageDir;
private static File downloadDir;
public static void initFileConfig(Context context) {
@@ -42,6 +43,13 @@
Log.d(TAG, "initFileConfig: 创建CompressImageFile文件夹");
}
}
+ waterImageDir = new File(parentDir, "WaterImageFile");
+ if (!waterImageDir.exists()) {
+ boolean mkAudioDir = waterImageDir.mkdir();
+ if (mkAudioDir) {
+ Log.d(TAG, "initFileConfig: 创建WaterImageFile文件夹");
+ }
+ }
downloadDir = new File(parentDir, "DownloadFile");
if (!downloadDir.exists()) {
boolean mkDownDir = downloadDir.mkdir();
@@ -101,6 +109,36 @@
return imageDir.toString();
}
+ static File getWaterImageFile() {
+ //如果第一次初始化文件夹未创建成功,那就调用的时候再单独创建一次文件夹
+ if (waterImageDir == null) {
+ File parentDir = new File(context.getFilesDir().getAbsolutePath(), "Demo");
+ if (!parentDir.exists()) {
+ boolean mkdir = parentDir.mkdir();
+ if (mkdir) {
+ Log.d(TAG, "getWaterImageFile: 创建Demo文件夹");
+ }
+ }
+ waterImageDir = new File(parentDir, "WaterImageFile");
+ if (!waterImageDir.exists()) {
+ boolean mkAudioDir = waterImageDir.mkdir();
+ if (mkAudioDir) {
+ Log.d(TAG, "getWaterImageFile: 创建WaterImageFile文件夹");
+ }
+ }
+ }
+ String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date());
+ File imageFile = new File(waterImageDir + File.separator + "IMG_" + timeStamp + ".png");
+ if (!imageFile.exists()) {
+ try {
+ imageFile.createNewFile();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ return imageFile;
+ }
+
//储存下载文件的目录
static String getDownloadFilePath() {
if (downloadDir == null) {
diff --git a/app/src/main/java/com/casic/dcms/utils/OtherUtils.java b/app/src/main/java/com/casic/dcms/utils/OtherUtils.java
index 407d70e..55a56a3 100644
--- a/app/src/main/java/com/casic/dcms/utils/OtherUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/OtherUtils.java
@@ -5,6 +5,11 @@
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Rect;
import android.os.Build;
import android.provider.Settings;
import android.telephony.TelephonyManager;
@@ -13,9 +18,10 @@
import androidx.core.app.ActivityCompat;
+import com.casic.dcms.ui.BigImageActivity;
import com.casic.dcms.ui.CaseProcessActivity;
import com.casic.dcms.utils.callback.IDownloadListener;
-import com.casic.dcms.widgets.BigPictureDialog;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import org.jetbrains.annotations.NotNull;
@@ -24,7 +30,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
-import java.util.List;
+import java.util.ArrayList;
import okhttp3.Call;
import okhttp3.Callback;
@@ -36,9 +42,61 @@
public class OtherUtils {
private static final String TAG = "OtherUtils";
+ /**
+ * 绘制文字到右下角
+ */
+ public static String drawTextToRightBottom(Context context, Bitmap bitmap, String name, String date, String time) {
+ //初始化画笔
+ Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ paint.setColor(Color.RED);
+ paint.setDither(true); // 获取跟清晰的图像采样
+ paint.setFilterBitmap(true);// 过滤一些
+ paint.setTextSize(QMUIDisplayHelper.dp2px(context, 20));
+ Rect nameBounds = new Rect();
+ paint.getTextBounds(name, 0, name.length(), nameBounds);
+ Rect dateBounds = new Rect();
+ paint.getTextBounds(date, 0, date.length(), dateBounds);
+ Rect timeBounds = new Rect();
+ paint.getTextBounds(time, 0, time.length(), timeBounds);
+
+ //添加水印
+ android.graphics.Bitmap.Config bitmapConfig = bitmap.getConfig();
+ if (bitmapConfig == null) {
+ bitmapConfig = Bitmap.Config.RGB_565;
+ }
+ bitmap = bitmap.copy(bitmapConfig, true);
+
+ Canvas canvas = new Canvas(bitmap);
+ final int bitmapWidth = bitmap.getWidth();
+ final int bitmapHeight = bitmap.getHeight();
+ final int paddingRight = QMUIDisplayHelper.dp2px(context, 10);
+ //有几行就写几行
+ canvas.drawText(name, bitmapWidth - nameBounds.width() - paddingRight,
+ bitmapHeight - QMUIDisplayHelper.dp2px(context, 55), paint);
+ canvas.drawText(date, bitmapWidth - dateBounds.width() - paddingRight,
+ bitmapHeight - QMUIDisplayHelper.dp2px(context, 30), paint);
+ canvas.drawText(time, bitmapWidth - timeBounds.width() - paddingRight,
+ bitmapHeight - QMUIDisplayHelper.dp2px(context, 10), paint);
+
+ //将带有水印的图片保存
+ File file = FileUtils.getWaterImageFile();
+ try {
+ FileOutputStream fos = new FileOutputStream(file);
+ bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
+ fos.flush();
+ fos.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return file.getAbsolutePath();
+ }
+
//查看大图
- public static void showBigImage(Context context, int index, List imageList) {
- new BigPictureDialog.Builder().setContext(context).setImageIndex(index).setImageList(imageList).build().show();
+ public static void showBigImage(Context context, int index, ArrayList imageList) {
+ Intent intent = new Intent(context, BigImageActivity.class);
+ intent.putExtra("index", index);
+ intent.putStringArrayListExtra("images", imageList);
+ context.startActivity(intent);
}
//查看案卷处理记录
diff --git a/app/src/main/java/com/casic/dcms/utils/WaterImageFileProvider.java b/app/src/main/java/com/casic/dcms/utils/WaterImageFileProvider.java
new file mode 100644
index 0000000..4102901
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/utils/WaterImageFileProvider.java
@@ -0,0 +1,6 @@
+package com.casic.dcms.utils;
+
+import androidx.core.content.FileProvider;
+
+public class WaterImageFileProvider extends FileProvider {
+}
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
index f5dc11e..fb128b7 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
@@ -1,7 +1,10 @@
package com.casic.dcms.utils.retrofit;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
import android.util.Log;
+import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.bean.ActionResultBean;
import com.casic.dcms.bean.CaseCheckBean;
import com.casic.dcms.bean.CaseCheckedBean;
@@ -32,7 +35,10 @@
import com.casic.dcms.utils.AuthenticationHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.HttpConfig;
+import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.SaveKeyValues;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
import org.jetbrains.annotations.NotNull;
@@ -289,9 +295,16 @@
* http://xx.com/static/2019-10/8050891248624f2bbefedcb196ce89cb.jpeg
*/
public static Observable getImageUploadResult(File image) {
+ //改为上传带水印的图片
+ Bitmap bitmap = BitmapFactory.decodeFile(image.getAbsolutePath());
+ String path = OtherUtils.drawTextToRightBottom(BaseApplication.getInstance(), bitmap,
+ StringHelper.getUserAccount(),
+ TimeOrDateUtil.rTimestampToDate(System.currentTimeMillis()),
+ TimeOrDateUtil.timestampToTime(System.currentTimeMillis()));
+
Retrofit retrofit = createRetrofit();
RetrofitService service = retrofit.create(RetrofitService.class);
- RequestBody requestBody = RequestBody.create(MediaType.parse("image/png"), image);
+ RequestBody requestBody = RequestBody.create(MediaType.parse("image/png"), new File(path));
MultipartBody.Part imagePart = MultipartBody.Part.createFormData("file", image.getName(), requestBody);
return service.uploadImage(AuthenticationHelper.getToken(), imagePart);
}
diff --git a/app/src/main/java/com/casic/dcms/widgets/BigPictureDialog.java b/app/src/main/java/com/casic/dcms/widgets/BigPictureDialog.java
deleted file mode 100644
index f81e17e..0000000
--- a/app/src/main/java/com/casic/dcms/widgets/BigPictureDialog.java
+++ /dev/null
@@ -1,176 +0,0 @@
-package com.casic.dcms.widgets;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.Window;
-import android.view.WindowManager;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-import androidx.appcompat.app.AlertDialog;
-import androidx.viewpager.widget.PagerAdapter;
-import androidx.viewpager.widget.ViewPager;
-
-import com.bumptech.glide.Glide;
-import com.casic.dcms.R;
-import com.luck.picture.lib.photoview.PhotoView;
-import com.qmuiteam.qmui.util.QMUIDisplayHelper;
-
-import org.jetbrains.annotations.NotNull;
-
-import java.util.List;
-
-public class BigPictureDialog extends AlertDialog {
-
- private Context context;
- private int index;
- private List data;
- private TextView pageNumberView;
- private ViewPager imagePagerView;
- private Window window;
- private int maxWidth, maxHeight;
-
- private BigPictureDialog(Builder builder) {
- super(builder.mContext, R.style.CustomDialogStyle);
- this.context = builder.mContext;
- this.index = builder.index;
- this.data = builder.images;
- }
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.dialog_big_picture);
-
- pageNumberView = findViewById(R.id.pageNumberView);
- imagePagerView = findViewById(R.id.imagePagerView);
- initData();
- window = getWindow();
-
- maxWidth = (int) (QMUIDisplayHelper.getScreenWidth(context) * 0.9);
- maxHeight = (int) (QMUIDisplayHelper.getScreenHeight(context) * 0.8);
-
- setCancelable(true);
- setCanceledOnTouchOutside(true);
- }
-
- @Override
- public void onAttachedToWindow() {
- super.onAttachedToWindow();
- WindowManager.LayoutParams layoutParams = window.getAttributes();
- layoutParams.width = maxWidth;
- layoutParams.height = maxHeight;
- window.setAttributes(layoutParams);
- }
-
- private void initData() {
- imagePagerView.setAdapter(new BigPictureAdapter());
- imagePagerView.setCurrentItem(index);
- imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
- imagePagerView.setPageMargin(10);//控制两幅图之间的间距
- imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
- imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
- @Override
- public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
-
- }
-
- @SuppressLint("SetTextI18n")
- @Override
- public void onPageSelected(int position) {
- pageNumberView.setText("(" + (position + 1) + "/" + data.size() + ")");
- }
-
- @Override
- public void onPageScrollStateChanged(int state) {
-
- }
- });
- }
-
- class BigPictureAdapter extends PagerAdapter {
-
- @Override
- public int getCount() {
- return data.size();
- }
-
- @Override
- public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
- return view == object;
- }
-
- @NotNull
- @Override
- public Object instantiateItem(@NotNull ViewGroup container, int position) {
- View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
- PhotoView photoView = view.findViewById(R.id.photoView);
- Glide.with(context).load(data.get(position)).into(photoView);
- photoView.setScaleType(ImageView.ScaleType.FIT_XY);
- LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(maxWidth, maxHeight);
- photoView.setLayoutParams(layoutParams);
- container.addView(view);
- return view;
- }
-
- @Override
- public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
- container.removeView((View) object);
- }
- }
-
- //设置切换动画
- public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
- //自由控制缩放比例
- private static final float MAX_SCALE = 1f;
- private static final float MIN_SCALE = 0.85f;//0.85f
-
- @Override
- public void transformPage(@NotNull View page, float position) {
-
- if (position <= 1) {
- float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
- page.setScaleX(scaleFactor);
- if (position > 0) {
- page.setTranslationX(-scaleFactor * 2);
- } else if (position < 0) {
- page.setTranslationX(scaleFactor * 2);
- }
- page.setScaleY(scaleFactor);
- } else {
- page.setScaleX(MIN_SCALE);
- page.setScaleY(MIN_SCALE);
- }
- }
- }
-
- public static class Builder {
- private Context mContext;
- private int index;
- private List images;
-
- public Builder setContext(Context mContext) {
- this.mContext = mContext;
- return this;
- }
-
- public Builder setImageIndex(int imageIndex) {
- this.index = imageIndex;
- return this;
- }
-
- public Builder setImageList(List images) {
- this.images = images;
- return this;
- }
-
- public BigPictureDialog build() {
- return new BigPictureDialog(this);
- }
- }
-}
diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/app/build.gradle b/app/build.gradle
index 045dd9e..1cc4d59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,7 +52,7 @@
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//图片加载框架
- implementation 'com.github.bumptech.glide:glide:4.5.0'
+ implementation 'com.github.bumptech.glide:glide:4.7.1'
//MVP网络请求框架retrofit2+rxjava
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -71,10 +71,10 @@
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
implementation 'com.github.huangyanbin:SmartTable:1.7.1'
- implementation 'com.getui:gtsdk:3.1.4.0'
//个推SDK
- implementation 'com.getui:gtc:3.1.0.0'
+ implementation 'com.getui:gtsdk:3.1.4.0'
//个推核心组件
+ implementation 'com.getui:gtc:3.1.0.0'
//数据库框架
implementation 'org.greenrobot:greendao:3.3.0'
//沉浸式状态栏。基础依赖包,必须要依赖
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 25931cd..92c60e5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -76,6 +76,7 @@
+
+
+
+
+
+
urls = getIntent().getStringArrayListExtra("images");
+ if (urls == null || urls.size() == 0) {
+ return;
+ }
+ pageNumberView.setText("(" + (index + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ imagePagerView.setAdapter(new BigImageAdapter(this, urls));
+ imagePagerView.setCurrentItem(index);
+ imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
+ imagePagerView.setPageMargin(10);//控制两幅图之间的间距
+ imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
+ imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ pageNumberView.setText("(" + (position + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+
+ static class BigImageAdapter extends PagerAdapter {
+
+ private Context context;
+ private List data;
+
+ BigImageAdapter(@NotNull Context context, @NotNull List imageList) {
+ this.context = context;
+ this.data = imageList;
+ }
+
+ @Override
+ public int getCount() {
+ return data.size();
+ }
+
+ @Override
+ public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
+ return view == object;
+ }
+
+ @NotNull
+ @Override
+ public Object instantiateItem(@NotNull ViewGroup container, int position) {
+ View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
+ PhotoView photoView = view.findViewById(R.id.photoView);
+ Glide.with(context).load(data.get(position)).into(photoView);
+ photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ container.addView(view);
+ return view;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
+ container.removeView((View) object);
+ }
+ }
+
+ //设置切换动画
+ public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
+ //自由控制缩放比例
+ private static final float MAX_SCALE = 1f;
+ private static final float MIN_SCALE = 0.85f;//0.85f
+
+ @Override
+ public void transformPage(@NotNull View page, float position) {
+
+ if (position <= 1) {
+ float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
+ page.setScaleX(scaleFactor);
+ if (position > 0) {
+ page.setTranslationX(-scaleFactor * 2);
+ } else if (position < 0) {
+ page.setTranslationX(scaleFactor * 2);
+ }
+ page.setScaleY(scaleFactor);
+ } else {
+ page.setScaleX(MIN_SCALE);
+ page.setScaleY(MIN_SCALE);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index bc6bbca..6a93d0f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -114,7 +114,7 @@
private String id;
private String changeState;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private MediaPlayer mediaPlayer;
private QMUITipDialog submitDialog;
@@ -293,7 +293,7 @@
//核实照片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -353,7 +353,7 @@
//处理照片
String processImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(processImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = processImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
index 23f3260..d4f61b1 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -148,7 +147,7 @@
//核实图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -173,7 +172,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -198,7 +197,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
index e25aefd..2b65bb8 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
@@ -30,7 +30,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -122,7 +121,7 @@
//核实图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -147,7 +146,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -172,7 +171,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 7455b6e..da63f04 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -114,7 +114,7 @@
private String caseReason;
private String approvalResult;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseDetailPresenterImpl caseDetailPresenter;
@@ -179,7 +179,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
index 3079857..443bcc5 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -117,7 +116,7 @@
//最初始的案卷图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -142,7 +141,7 @@
//案卷处理时候上传的图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
index 67621a8..2bf82a6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
@@ -171,7 +171,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
index 7e88437..5e8eee6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -118,7 +117,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
index e65fa0a..cf3e900 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -121,7 +121,7 @@
private QMUITipDialog submitDialog, qmuiTipDialog;
private UploadImagePresenterImpl uploadImagePresenter;
private List imageList = new ArrayList<>();//服务器返回的拍照数据集
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private String eorc = "请选择";
private String typeCode = "请选择";
private String typeDetailCode = "请选择";//默认值,防止用户不选择直接跳过
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
index 253c2ab..b4d3bac 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
@@ -89,7 +89,7 @@
private List smallClassBeans;
private QMUITipDialog submitDialog;
private UploadImagePresenterImpl uploadImagePresenter;
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List imageList = new ArrayList<>();//上传到服务器的数据集
private String eorc = "请选择";
private String typeCode = "请选择";
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
index 8a155f6..926aecb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -121,7 +120,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
index c30bd0f..509d0be 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
@@ -139,7 +139,7 @@
private MediaPlayer mediaPlayer;
private UploadImagePresenterImpl uploadImagePresenter;
private QMUITipDialog submitDialog;
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseNextNodePresenterImpl caseNextNodePresenter;
private CaseHandlePresenterImpl caseHandlePresenter;
@@ -226,7 +226,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
index bfd99ef..1064b85 100644
--- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
@@ -30,7 +30,6 @@
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
import com.casic.dcms.utils.callback.ILocationListener;
-import com.casic.dcms.widgets.BigPictureDialog;
import com.esri.arcgisruntime.geometry.Point;
import com.esri.arcgisruntime.layers.ArcGISTiledLayer;
import com.esri.arcgisruntime.mapping.ArcGISMap;
@@ -50,7 +49,6 @@
import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
import java.io.File;
-import java.util.Collections;
import butterknife.BindView;
import butterknife.OnClick;
@@ -254,11 +252,7 @@
pictureView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- new BigPictureDialog.Builder()
- .setContext(context)
- .setImageIndex(0)
- .setImageList(Collections.singletonList(realPath))
- .build().show();
+
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
index d78f2f5..7faa01b 100644
--- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
@@ -75,7 +75,7 @@
private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter;
private ImageRecycleViewAdapter imageAdapter;
private QMUITipDialog submitDialog;
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private String gridId, shopID;
diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
index 170e274..c07978f 100644
--- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
@@ -17,6 +17,7 @@
private static Context context;
private static File audioDir;
private static File imageDir;
+ private static File waterImageDir;
private static File downloadDir;
public static void initFileConfig(Context context) {
@@ -42,6 +43,13 @@
Log.d(TAG, "initFileConfig: 创建CompressImageFile文件夹");
}
}
+ waterImageDir = new File(parentDir, "WaterImageFile");
+ if (!waterImageDir.exists()) {
+ boolean mkAudioDir = waterImageDir.mkdir();
+ if (mkAudioDir) {
+ Log.d(TAG, "initFileConfig: 创建WaterImageFile文件夹");
+ }
+ }
downloadDir = new File(parentDir, "DownloadFile");
if (!downloadDir.exists()) {
boolean mkDownDir = downloadDir.mkdir();
@@ -101,6 +109,36 @@
return imageDir.toString();
}
+ static File getWaterImageFile() {
+ //如果第一次初始化文件夹未创建成功,那就调用的时候再单独创建一次文件夹
+ if (waterImageDir == null) {
+ File parentDir = new File(context.getFilesDir().getAbsolutePath(), "Demo");
+ if (!parentDir.exists()) {
+ boolean mkdir = parentDir.mkdir();
+ if (mkdir) {
+ Log.d(TAG, "getWaterImageFile: 创建Demo文件夹");
+ }
+ }
+ waterImageDir = new File(parentDir, "WaterImageFile");
+ if (!waterImageDir.exists()) {
+ boolean mkAudioDir = waterImageDir.mkdir();
+ if (mkAudioDir) {
+ Log.d(TAG, "getWaterImageFile: 创建WaterImageFile文件夹");
+ }
+ }
+ }
+ String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date());
+ File imageFile = new File(waterImageDir + File.separator + "IMG_" + timeStamp + ".png");
+ if (!imageFile.exists()) {
+ try {
+ imageFile.createNewFile();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ return imageFile;
+ }
+
//储存下载文件的目录
static String getDownloadFilePath() {
if (downloadDir == null) {
diff --git a/app/src/main/java/com/casic/dcms/utils/OtherUtils.java b/app/src/main/java/com/casic/dcms/utils/OtherUtils.java
index 407d70e..55a56a3 100644
--- a/app/src/main/java/com/casic/dcms/utils/OtherUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/OtherUtils.java
@@ -5,6 +5,11 @@
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Rect;
import android.os.Build;
import android.provider.Settings;
import android.telephony.TelephonyManager;
@@ -13,9 +18,10 @@
import androidx.core.app.ActivityCompat;
+import com.casic.dcms.ui.BigImageActivity;
import com.casic.dcms.ui.CaseProcessActivity;
import com.casic.dcms.utils.callback.IDownloadListener;
-import com.casic.dcms.widgets.BigPictureDialog;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import org.jetbrains.annotations.NotNull;
@@ -24,7 +30,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
-import java.util.List;
+import java.util.ArrayList;
import okhttp3.Call;
import okhttp3.Callback;
@@ -36,9 +42,61 @@
public class OtherUtils {
private static final String TAG = "OtherUtils";
+ /**
+ * 绘制文字到右下角
+ */
+ public static String drawTextToRightBottom(Context context, Bitmap bitmap, String name, String date, String time) {
+ //初始化画笔
+ Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ paint.setColor(Color.RED);
+ paint.setDither(true); // 获取跟清晰的图像采样
+ paint.setFilterBitmap(true);// 过滤一些
+ paint.setTextSize(QMUIDisplayHelper.dp2px(context, 20));
+ Rect nameBounds = new Rect();
+ paint.getTextBounds(name, 0, name.length(), nameBounds);
+ Rect dateBounds = new Rect();
+ paint.getTextBounds(date, 0, date.length(), dateBounds);
+ Rect timeBounds = new Rect();
+ paint.getTextBounds(time, 0, time.length(), timeBounds);
+
+ //添加水印
+ android.graphics.Bitmap.Config bitmapConfig = bitmap.getConfig();
+ if (bitmapConfig == null) {
+ bitmapConfig = Bitmap.Config.RGB_565;
+ }
+ bitmap = bitmap.copy(bitmapConfig, true);
+
+ Canvas canvas = new Canvas(bitmap);
+ final int bitmapWidth = bitmap.getWidth();
+ final int bitmapHeight = bitmap.getHeight();
+ final int paddingRight = QMUIDisplayHelper.dp2px(context, 10);
+ //有几行就写几行
+ canvas.drawText(name, bitmapWidth - nameBounds.width() - paddingRight,
+ bitmapHeight - QMUIDisplayHelper.dp2px(context, 55), paint);
+ canvas.drawText(date, bitmapWidth - dateBounds.width() - paddingRight,
+ bitmapHeight - QMUIDisplayHelper.dp2px(context, 30), paint);
+ canvas.drawText(time, bitmapWidth - timeBounds.width() - paddingRight,
+ bitmapHeight - QMUIDisplayHelper.dp2px(context, 10), paint);
+
+ //将带有水印的图片保存
+ File file = FileUtils.getWaterImageFile();
+ try {
+ FileOutputStream fos = new FileOutputStream(file);
+ bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
+ fos.flush();
+ fos.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return file.getAbsolutePath();
+ }
+
//查看大图
- public static void showBigImage(Context context, int index, List imageList) {
- new BigPictureDialog.Builder().setContext(context).setImageIndex(index).setImageList(imageList).build().show();
+ public static void showBigImage(Context context, int index, ArrayList imageList) {
+ Intent intent = new Intent(context, BigImageActivity.class);
+ intent.putExtra("index", index);
+ intent.putStringArrayListExtra("images", imageList);
+ context.startActivity(intent);
}
//查看案卷处理记录
diff --git a/app/src/main/java/com/casic/dcms/utils/WaterImageFileProvider.java b/app/src/main/java/com/casic/dcms/utils/WaterImageFileProvider.java
new file mode 100644
index 0000000..4102901
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/utils/WaterImageFileProvider.java
@@ -0,0 +1,6 @@
+package com.casic.dcms.utils;
+
+import androidx.core.content.FileProvider;
+
+public class WaterImageFileProvider extends FileProvider {
+}
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
index f5dc11e..fb128b7 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
@@ -1,7 +1,10 @@
package com.casic.dcms.utils.retrofit;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
import android.util.Log;
+import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.bean.ActionResultBean;
import com.casic.dcms.bean.CaseCheckBean;
import com.casic.dcms.bean.CaseCheckedBean;
@@ -32,7 +35,10 @@
import com.casic.dcms.utils.AuthenticationHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.HttpConfig;
+import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.SaveKeyValues;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
import org.jetbrains.annotations.NotNull;
@@ -289,9 +295,16 @@
* http://xx.com/static/2019-10/8050891248624f2bbefedcb196ce89cb.jpeg
*/
public static Observable getImageUploadResult(File image) {
+ //改为上传带水印的图片
+ Bitmap bitmap = BitmapFactory.decodeFile(image.getAbsolutePath());
+ String path = OtherUtils.drawTextToRightBottom(BaseApplication.getInstance(), bitmap,
+ StringHelper.getUserAccount(),
+ TimeOrDateUtil.rTimestampToDate(System.currentTimeMillis()),
+ TimeOrDateUtil.timestampToTime(System.currentTimeMillis()));
+
Retrofit retrofit = createRetrofit();
RetrofitService service = retrofit.create(RetrofitService.class);
- RequestBody requestBody = RequestBody.create(MediaType.parse("image/png"), image);
+ RequestBody requestBody = RequestBody.create(MediaType.parse("image/png"), new File(path));
MultipartBody.Part imagePart = MultipartBody.Part.createFormData("file", image.getName(), requestBody);
return service.uploadImage(AuthenticationHelper.getToken(), imagePart);
}
diff --git a/app/src/main/java/com/casic/dcms/widgets/BigPictureDialog.java b/app/src/main/java/com/casic/dcms/widgets/BigPictureDialog.java
deleted file mode 100644
index f81e17e..0000000
--- a/app/src/main/java/com/casic/dcms/widgets/BigPictureDialog.java
+++ /dev/null
@@ -1,176 +0,0 @@
-package com.casic.dcms.widgets;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.Window;
-import android.view.WindowManager;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-import androidx.appcompat.app.AlertDialog;
-import androidx.viewpager.widget.PagerAdapter;
-import androidx.viewpager.widget.ViewPager;
-
-import com.bumptech.glide.Glide;
-import com.casic.dcms.R;
-import com.luck.picture.lib.photoview.PhotoView;
-import com.qmuiteam.qmui.util.QMUIDisplayHelper;
-
-import org.jetbrains.annotations.NotNull;
-
-import java.util.List;
-
-public class BigPictureDialog extends AlertDialog {
-
- private Context context;
- private int index;
- private List data;
- private TextView pageNumberView;
- private ViewPager imagePagerView;
- private Window window;
- private int maxWidth, maxHeight;
-
- private BigPictureDialog(Builder builder) {
- super(builder.mContext, R.style.CustomDialogStyle);
- this.context = builder.mContext;
- this.index = builder.index;
- this.data = builder.images;
- }
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.dialog_big_picture);
-
- pageNumberView = findViewById(R.id.pageNumberView);
- imagePagerView = findViewById(R.id.imagePagerView);
- initData();
- window = getWindow();
-
- maxWidth = (int) (QMUIDisplayHelper.getScreenWidth(context) * 0.9);
- maxHeight = (int) (QMUIDisplayHelper.getScreenHeight(context) * 0.8);
-
- setCancelable(true);
- setCanceledOnTouchOutside(true);
- }
-
- @Override
- public void onAttachedToWindow() {
- super.onAttachedToWindow();
- WindowManager.LayoutParams layoutParams = window.getAttributes();
- layoutParams.width = maxWidth;
- layoutParams.height = maxHeight;
- window.setAttributes(layoutParams);
- }
-
- private void initData() {
- imagePagerView.setAdapter(new BigPictureAdapter());
- imagePagerView.setCurrentItem(index);
- imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
- imagePagerView.setPageMargin(10);//控制两幅图之间的间距
- imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
- imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
- @Override
- public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
-
- }
-
- @SuppressLint("SetTextI18n")
- @Override
- public void onPageSelected(int position) {
- pageNumberView.setText("(" + (position + 1) + "/" + data.size() + ")");
- }
-
- @Override
- public void onPageScrollStateChanged(int state) {
-
- }
- });
- }
-
- class BigPictureAdapter extends PagerAdapter {
-
- @Override
- public int getCount() {
- return data.size();
- }
-
- @Override
- public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
- return view == object;
- }
-
- @NotNull
- @Override
- public Object instantiateItem(@NotNull ViewGroup container, int position) {
- View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
- PhotoView photoView = view.findViewById(R.id.photoView);
- Glide.with(context).load(data.get(position)).into(photoView);
- photoView.setScaleType(ImageView.ScaleType.FIT_XY);
- LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(maxWidth, maxHeight);
- photoView.setLayoutParams(layoutParams);
- container.addView(view);
- return view;
- }
-
- @Override
- public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
- container.removeView((View) object);
- }
- }
-
- //设置切换动画
- public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
- //自由控制缩放比例
- private static final float MAX_SCALE = 1f;
- private static final float MIN_SCALE = 0.85f;//0.85f
-
- @Override
- public void transformPage(@NotNull View page, float position) {
-
- if (position <= 1) {
- float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
- page.setScaleX(scaleFactor);
- if (position > 0) {
- page.setTranslationX(-scaleFactor * 2);
- } else if (position < 0) {
- page.setTranslationX(scaleFactor * 2);
- }
- page.setScaleY(scaleFactor);
- } else {
- page.setScaleX(MIN_SCALE);
- page.setScaleY(MIN_SCALE);
- }
- }
- }
-
- public static class Builder {
- private Context mContext;
- private int index;
- private List images;
-
- public Builder setContext(Context mContext) {
- this.mContext = mContext;
- return this;
- }
-
- public Builder setImageIndex(int imageIndex) {
- this.index = imageIndex;
- return this;
- }
-
- public Builder setImageList(List images) {
- this.images = images;
- return this;
- }
-
- public BigPictureDialog build() {
- return new BigPictureDialog(this);
- }
- }
-}
diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml
new file mode 100644
index 0000000..54d8cb4
--- /dev/null
+++ b/app/src/main/res/layout/activity_big_image.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/app/build.gradle b/app/build.gradle
index 045dd9e..1cc4d59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,7 +52,7 @@
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//图片加载框架
- implementation 'com.github.bumptech.glide:glide:4.5.0'
+ implementation 'com.github.bumptech.glide:glide:4.7.1'
//MVP网络请求框架retrofit2+rxjava
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -71,10 +71,10 @@
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
implementation 'com.github.huangyanbin:SmartTable:1.7.1'
- implementation 'com.getui:gtsdk:3.1.4.0'
//个推SDK
- implementation 'com.getui:gtc:3.1.0.0'
+ implementation 'com.getui:gtsdk:3.1.4.0'
//个推核心组件
+ implementation 'com.getui:gtc:3.1.0.0'
//数据库框架
implementation 'org.greenrobot:greendao:3.3.0'
//沉浸式状态栏。基础依赖包,必须要依赖
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 25931cd..92c60e5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -76,6 +76,7 @@
+
+
+
+
+
+
urls = getIntent().getStringArrayListExtra("images");
+ if (urls == null || urls.size() == 0) {
+ return;
+ }
+ pageNumberView.setText("(" + (index + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ imagePagerView.setAdapter(new BigImageAdapter(this, urls));
+ imagePagerView.setCurrentItem(index);
+ imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
+ imagePagerView.setPageMargin(10);//控制两幅图之间的间距
+ imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
+ imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ pageNumberView.setText("(" + (position + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+
+ static class BigImageAdapter extends PagerAdapter {
+
+ private Context context;
+ private List data;
+
+ BigImageAdapter(@NotNull Context context, @NotNull List imageList) {
+ this.context = context;
+ this.data = imageList;
+ }
+
+ @Override
+ public int getCount() {
+ return data.size();
+ }
+
+ @Override
+ public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
+ return view == object;
+ }
+
+ @NotNull
+ @Override
+ public Object instantiateItem(@NotNull ViewGroup container, int position) {
+ View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
+ PhotoView photoView = view.findViewById(R.id.photoView);
+ Glide.with(context).load(data.get(position)).into(photoView);
+ photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ container.addView(view);
+ return view;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
+ container.removeView((View) object);
+ }
+ }
+
+ //设置切换动画
+ public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
+ //自由控制缩放比例
+ private static final float MAX_SCALE = 1f;
+ private static final float MIN_SCALE = 0.85f;//0.85f
+
+ @Override
+ public void transformPage(@NotNull View page, float position) {
+
+ if (position <= 1) {
+ float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
+ page.setScaleX(scaleFactor);
+ if (position > 0) {
+ page.setTranslationX(-scaleFactor * 2);
+ } else if (position < 0) {
+ page.setTranslationX(scaleFactor * 2);
+ }
+ page.setScaleY(scaleFactor);
+ } else {
+ page.setScaleX(MIN_SCALE);
+ page.setScaleY(MIN_SCALE);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index bc6bbca..6a93d0f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -114,7 +114,7 @@
private String id;
private String changeState;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private MediaPlayer mediaPlayer;
private QMUITipDialog submitDialog;
@@ -293,7 +293,7 @@
//核实照片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -353,7 +353,7 @@
//处理照片
String processImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(processImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = processImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
index 23f3260..d4f61b1 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -148,7 +147,7 @@
//核实图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -173,7 +172,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -198,7 +197,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
index e25aefd..2b65bb8 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
@@ -30,7 +30,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -122,7 +121,7 @@
//核实图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -147,7 +146,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -172,7 +171,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 7455b6e..da63f04 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -114,7 +114,7 @@
private String caseReason;
private String approvalResult;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseDetailPresenterImpl caseDetailPresenter;
@@ -179,7 +179,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
index 3079857..443bcc5 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -117,7 +116,7 @@
//最初始的案卷图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -142,7 +141,7 @@
//案卷处理时候上传的图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
index 67621a8..2bf82a6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
@@ -171,7 +171,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
index 7e88437..5e8eee6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -118,7 +117,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
index e65fa0a..cf3e900 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -121,7 +121,7 @@
private QMUITipDialog submitDialog, qmuiTipDialog;
private UploadImagePresenterImpl uploadImagePresenter;
private List imageList = new ArrayList<>();//服务器返回的拍照数据集
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private String eorc = "请选择";
private String typeCode = "请选择";
private String typeDetailCode = "请选择";//默认值,防止用户不选择直接跳过
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
index 253c2ab..b4d3bac 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
@@ -89,7 +89,7 @@
private List smallClassBeans;
private QMUITipDialog submitDialog;
private UploadImagePresenterImpl uploadImagePresenter;
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List imageList = new ArrayList<>();//上传到服务器的数据集
private String eorc = "请选择";
private String typeCode = "请选择";
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
index 8a155f6..926aecb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -121,7 +120,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
index c30bd0f..509d0be 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
@@ -139,7 +139,7 @@
private MediaPlayer mediaPlayer;
private UploadImagePresenterImpl uploadImagePresenter;
private QMUITipDialog submitDialog;
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseNextNodePresenterImpl caseNextNodePresenter;
private CaseHandlePresenterImpl caseHandlePresenter;
@@ -226,7 +226,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
index bfd99ef..1064b85 100644
--- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
@@ -30,7 +30,6 @@
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
import com.casic.dcms.utils.callback.ILocationListener;
-import com.casic.dcms.widgets.BigPictureDialog;
import com.esri.arcgisruntime.geometry.Point;
import com.esri.arcgisruntime.layers.ArcGISTiledLayer;
import com.esri.arcgisruntime.mapping.ArcGISMap;
@@ -50,7 +49,6 @@
import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
import java.io.File;
-import java.util.Collections;
import butterknife.BindView;
import butterknife.OnClick;
@@ -254,11 +252,7 @@
pictureView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- new BigPictureDialog.Builder()
- .setContext(context)
- .setImageIndex(0)
- .setImageList(Collections.singletonList(realPath))
- .build().show();
+
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
index d78f2f5..7faa01b 100644
--- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
@@ -75,7 +75,7 @@
private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter;
private ImageRecycleViewAdapter imageAdapter;
private QMUITipDialog submitDialog;
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private String gridId, shopID;
diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
index 170e274..c07978f 100644
--- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
@@ -17,6 +17,7 @@
private static Context context;
private static File audioDir;
private static File imageDir;
+ private static File waterImageDir;
private static File downloadDir;
public static void initFileConfig(Context context) {
@@ -42,6 +43,13 @@
Log.d(TAG, "initFileConfig: 创建CompressImageFile文件夹");
}
}
+ waterImageDir = new File(parentDir, "WaterImageFile");
+ if (!waterImageDir.exists()) {
+ boolean mkAudioDir = waterImageDir.mkdir();
+ if (mkAudioDir) {
+ Log.d(TAG, "initFileConfig: 创建WaterImageFile文件夹");
+ }
+ }
downloadDir = new File(parentDir, "DownloadFile");
if (!downloadDir.exists()) {
boolean mkDownDir = downloadDir.mkdir();
@@ -101,6 +109,36 @@
return imageDir.toString();
}
+ static File getWaterImageFile() {
+ //如果第一次初始化文件夹未创建成功,那就调用的时候再单独创建一次文件夹
+ if (waterImageDir == null) {
+ File parentDir = new File(context.getFilesDir().getAbsolutePath(), "Demo");
+ if (!parentDir.exists()) {
+ boolean mkdir = parentDir.mkdir();
+ if (mkdir) {
+ Log.d(TAG, "getWaterImageFile: 创建Demo文件夹");
+ }
+ }
+ waterImageDir = new File(parentDir, "WaterImageFile");
+ if (!waterImageDir.exists()) {
+ boolean mkAudioDir = waterImageDir.mkdir();
+ if (mkAudioDir) {
+ Log.d(TAG, "getWaterImageFile: 创建WaterImageFile文件夹");
+ }
+ }
+ }
+ String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date());
+ File imageFile = new File(waterImageDir + File.separator + "IMG_" + timeStamp + ".png");
+ if (!imageFile.exists()) {
+ try {
+ imageFile.createNewFile();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ return imageFile;
+ }
+
//储存下载文件的目录
static String getDownloadFilePath() {
if (downloadDir == null) {
diff --git a/app/src/main/java/com/casic/dcms/utils/OtherUtils.java b/app/src/main/java/com/casic/dcms/utils/OtherUtils.java
index 407d70e..55a56a3 100644
--- a/app/src/main/java/com/casic/dcms/utils/OtherUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/OtherUtils.java
@@ -5,6 +5,11 @@
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Rect;
import android.os.Build;
import android.provider.Settings;
import android.telephony.TelephonyManager;
@@ -13,9 +18,10 @@
import androidx.core.app.ActivityCompat;
+import com.casic.dcms.ui.BigImageActivity;
import com.casic.dcms.ui.CaseProcessActivity;
import com.casic.dcms.utils.callback.IDownloadListener;
-import com.casic.dcms.widgets.BigPictureDialog;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import org.jetbrains.annotations.NotNull;
@@ -24,7 +30,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
-import java.util.List;
+import java.util.ArrayList;
import okhttp3.Call;
import okhttp3.Callback;
@@ -36,9 +42,61 @@
public class OtherUtils {
private static final String TAG = "OtherUtils";
+ /**
+ * 绘制文字到右下角
+ */
+ public static String drawTextToRightBottom(Context context, Bitmap bitmap, String name, String date, String time) {
+ //初始化画笔
+ Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ paint.setColor(Color.RED);
+ paint.setDither(true); // 获取跟清晰的图像采样
+ paint.setFilterBitmap(true);// 过滤一些
+ paint.setTextSize(QMUIDisplayHelper.dp2px(context, 20));
+ Rect nameBounds = new Rect();
+ paint.getTextBounds(name, 0, name.length(), nameBounds);
+ Rect dateBounds = new Rect();
+ paint.getTextBounds(date, 0, date.length(), dateBounds);
+ Rect timeBounds = new Rect();
+ paint.getTextBounds(time, 0, time.length(), timeBounds);
+
+ //添加水印
+ android.graphics.Bitmap.Config bitmapConfig = bitmap.getConfig();
+ if (bitmapConfig == null) {
+ bitmapConfig = Bitmap.Config.RGB_565;
+ }
+ bitmap = bitmap.copy(bitmapConfig, true);
+
+ Canvas canvas = new Canvas(bitmap);
+ final int bitmapWidth = bitmap.getWidth();
+ final int bitmapHeight = bitmap.getHeight();
+ final int paddingRight = QMUIDisplayHelper.dp2px(context, 10);
+ //有几行就写几行
+ canvas.drawText(name, bitmapWidth - nameBounds.width() - paddingRight,
+ bitmapHeight - QMUIDisplayHelper.dp2px(context, 55), paint);
+ canvas.drawText(date, bitmapWidth - dateBounds.width() - paddingRight,
+ bitmapHeight - QMUIDisplayHelper.dp2px(context, 30), paint);
+ canvas.drawText(time, bitmapWidth - timeBounds.width() - paddingRight,
+ bitmapHeight - QMUIDisplayHelper.dp2px(context, 10), paint);
+
+ //将带有水印的图片保存
+ File file = FileUtils.getWaterImageFile();
+ try {
+ FileOutputStream fos = new FileOutputStream(file);
+ bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
+ fos.flush();
+ fos.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return file.getAbsolutePath();
+ }
+
//查看大图
- public static void showBigImage(Context context, int index, List imageList) {
- new BigPictureDialog.Builder().setContext(context).setImageIndex(index).setImageList(imageList).build().show();
+ public static void showBigImage(Context context, int index, ArrayList imageList) {
+ Intent intent = new Intent(context, BigImageActivity.class);
+ intent.putExtra("index", index);
+ intent.putStringArrayListExtra("images", imageList);
+ context.startActivity(intent);
}
//查看案卷处理记录
diff --git a/app/src/main/java/com/casic/dcms/utils/WaterImageFileProvider.java b/app/src/main/java/com/casic/dcms/utils/WaterImageFileProvider.java
new file mode 100644
index 0000000..4102901
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/utils/WaterImageFileProvider.java
@@ -0,0 +1,6 @@
+package com.casic.dcms.utils;
+
+import androidx.core.content.FileProvider;
+
+public class WaterImageFileProvider extends FileProvider {
+}
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
index f5dc11e..fb128b7 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
@@ -1,7 +1,10 @@
package com.casic.dcms.utils.retrofit;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
import android.util.Log;
+import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.bean.ActionResultBean;
import com.casic.dcms.bean.CaseCheckBean;
import com.casic.dcms.bean.CaseCheckedBean;
@@ -32,7 +35,10 @@
import com.casic.dcms.utils.AuthenticationHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.HttpConfig;
+import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.SaveKeyValues;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
import org.jetbrains.annotations.NotNull;
@@ -289,9 +295,16 @@
* http://xx.com/static/2019-10/8050891248624f2bbefedcb196ce89cb.jpeg
*/
public static Observable getImageUploadResult(File image) {
+ //改为上传带水印的图片
+ Bitmap bitmap = BitmapFactory.decodeFile(image.getAbsolutePath());
+ String path = OtherUtils.drawTextToRightBottom(BaseApplication.getInstance(), bitmap,
+ StringHelper.getUserAccount(),
+ TimeOrDateUtil.rTimestampToDate(System.currentTimeMillis()),
+ TimeOrDateUtil.timestampToTime(System.currentTimeMillis()));
+
Retrofit retrofit = createRetrofit();
RetrofitService service = retrofit.create(RetrofitService.class);
- RequestBody requestBody = RequestBody.create(MediaType.parse("image/png"), image);
+ RequestBody requestBody = RequestBody.create(MediaType.parse("image/png"), new File(path));
MultipartBody.Part imagePart = MultipartBody.Part.createFormData("file", image.getName(), requestBody);
return service.uploadImage(AuthenticationHelper.getToken(), imagePart);
}
diff --git a/app/src/main/java/com/casic/dcms/widgets/BigPictureDialog.java b/app/src/main/java/com/casic/dcms/widgets/BigPictureDialog.java
deleted file mode 100644
index f81e17e..0000000
--- a/app/src/main/java/com/casic/dcms/widgets/BigPictureDialog.java
+++ /dev/null
@@ -1,176 +0,0 @@
-package com.casic.dcms.widgets;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.Window;
-import android.view.WindowManager;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-import androidx.appcompat.app.AlertDialog;
-import androidx.viewpager.widget.PagerAdapter;
-import androidx.viewpager.widget.ViewPager;
-
-import com.bumptech.glide.Glide;
-import com.casic.dcms.R;
-import com.luck.picture.lib.photoview.PhotoView;
-import com.qmuiteam.qmui.util.QMUIDisplayHelper;
-
-import org.jetbrains.annotations.NotNull;
-
-import java.util.List;
-
-public class BigPictureDialog extends AlertDialog {
-
- private Context context;
- private int index;
- private List data;
- private TextView pageNumberView;
- private ViewPager imagePagerView;
- private Window window;
- private int maxWidth, maxHeight;
-
- private BigPictureDialog(Builder builder) {
- super(builder.mContext, R.style.CustomDialogStyle);
- this.context = builder.mContext;
- this.index = builder.index;
- this.data = builder.images;
- }
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.dialog_big_picture);
-
- pageNumberView = findViewById(R.id.pageNumberView);
- imagePagerView = findViewById(R.id.imagePagerView);
- initData();
- window = getWindow();
-
- maxWidth = (int) (QMUIDisplayHelper.getScreenWidth(context) * 0.9);
- maxHeight = (int) (QMUIDisplayHelper.getScreenHeight(context) * 0.8);
-
- setCancelable(true);
- setCanceledOnTouchOutside(true);
- }
-
- @Override
- public void onAttachedToWindow() {
- super.onAttachedToWindow();
- WindowManager.LayoutParams layoutParams = window.getAttributes();
- layoutParams.width = maxWidth;
- layoutParams.height = maxHeight;
- window.setAttributes(layoutParams);
- }
-
- private void initData() {
- imagePagerView.setAdapter(new BigPictureAdapter());
- imagePagerView.setCurrentItem(index);
- imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
- imagePagerView.setPageMargin(10);//控制两幅图之间的间距
- imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
- imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
- @Override
- public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
-
- }
-
- @SuppressLint("SetTextI18n")
- @Override
- public void onPageSelected(int position) {
- pageNumberView.setText("(" + (position + 1) + "/" + data.size() + ")");
- }
-
- @Override
- public void onPageScrollStateChanged(int state) {
-
- }
- });
- }
-
- class BigPictureAdapter extends PagerAdapter {
-
- @Override
- public int getCount() {
- return data.size();
- }
-
- @Override
- public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
- return view == object;
- }
-
- @NotNull
- @Override
- public Object instantiateItem(@NotNull ViewGroup container, int position) {
- View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
- PhotoView photoView = view.findViewById(R.id.photoView);
- Glide.with(context).load(data.get(position)).into(photoView);
- photoView.setScaleType(ImageView.ScaleType.FIT_XY);
- LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(maxWidth, maxHeight);
- photoView.setLayoutParams(layoutParams);
- container.addView(view);
- return view;
- }
-
- @Override
- public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
- container.removeView((View) object);
- }
- }
-
- //设置切换动画
- public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
- //自由控制缩放比例
- private static final float MAX_SCALE = 1f;
- private static final float MIN_SCALE = 0.85f;//0.85f
-
- @Override
- public void transformPage(@NotNull View page, float position) {
-
- if (position <= 1) {
- float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
- page.setScaleX(scaleFactor);
- if (position > 0) {
- page.setTranslationX(-scaleFactor * 2);
- } else if (position < 0) {
- page.setTranslationX(scaleFactor * 2);
- }
- page.setScaleY(scaleFactor);
- } else {
- page.setScaleX(MIN_SCALE);
- page.setScaleY(MIN_SCALE);
- }
- }
- }
-
- public static class Builder {
- private Context mContext;
- private int index;
- private List images;
-
- public Builder setContext(Context mContext) {
- this.mContext = mContext;
- return this;
- }
-
- public Builder setImageIndex(int imageIndex) {
- this.index = imageIndex;
- return this;
- }
-
- public Builder setImageList(List images) {
- this.images = images;
- return this;
- }
-
- public BigPictureDialog build() {
- return new BigPictureDialog(this);
- }
- }
-}
diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml
new file mode 100644
index 0000000..54d8cb4
--- /dev/null
+++ b/app/src/main/res/layout/activity_big_image.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_big_picture.xml b/app/src/main/res/layout/dialog_big_picture.xml
deleted file mode 100644
index bffbb84..0000000
--- a/app/src/main/res/layout/dialog_big_picture.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 603b140..f0f71e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/captures
.externalNativeBuild
.cxx
+.idea
diff --git a/app/build.gradle b/app/build.gradle
index 045dd9e..1cc4d59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,7 +52,7 @@
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//图片加载框架
- implementation 'com.github.bumptech.glide:glide:4.5.0'
+ implementation 'com.github.bumptech.glide:glide:4.7.1'
//MVP网络请求框架retrofit2+rxjava
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -71,10 +71,10 @@
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
//Excel表格
implementation 'com.github.huangyanbin:SmartTable:1.7.1'
- implementation 'com.getui:gtsdk:3.1.4.0'
//个推SDK
- implementation 'com.getui:gtc:3.1.0.0'
+ implementation 'com.getui:gtsdk:3.1.4.0'
//个推核心组件
+ implementation 'com.getui:gtc:3.1.0.0'
//数据库框架
implementation 'org.greenrobot:greendao:3.3.0'
//沉浸式状态栏。基础依赖包,必须要依赖
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 25931cd..92c60e5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -76,6 +76,7 @@
+
+
+
+
+
+
urls = getIntent().getStringArrayListExtra("images");
+ if (urls == null || urls.size() == 0) {
+ return;
+ }
+ pageNumberView.setText("(" + (index + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ imagePagerView.setAdapter(new BigImageAdapter(this, urls));
+ imagePagerView.setCurrentItem(index);
+ imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
+ imagePagerView.setPageMargin(10);//控制两幅图之间的间距
+ imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
+ imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ pageNumberView.setText("(" + (position + 1) + "/" + urls.size() + ")");
+ pageNumberView.setTextColor(Color.RED);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+ }
+
+ @Override
+ public void initEvent() {
+
+ }
+
+ static class BigImageAdapter extends PagerAdapter {
+
+ private Context context;
+ private List data;
+
+ BigImageAdapter(@NotNull Context context, @NotNull List imageList) {
+ this.context = context;
+ this.data = imageList;
+ }
+
+ @Override
+ public int getCount() {
+ return data.size();
+ }
+
+ @Override
+ public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
+ return view == object;
+ }
+
+ @NotNull
+ @Override
+ public Object instantiateItem(@NotNull ViewGroup container, int position) {
+ View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
+ PhotoView photoView = view.findViewById(R.id.photoView);
+ Glide.with(context).load(data.get(position)).into(photoView);
+ photoView.setScaleType(ImageView.ScaleType.FIT_XY);
+ container.addView(view);
+ return view;
+ }
+
+ @Override
+ public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
+ container.removeView((View) object);
+ }
+ }
+
+ //设置切换动画
+ public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
+ //自由控制缩放比例
+ private static final float MAX_SCALE = 1f;
+ private static final float MIN_SCALE = 0.85f;//0.85f
+
+ @Override
+ public void transformPage(@NotNull View page, float position) {
+
+ if (position <= 1) {
+ float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
+ page.setScaleX(scaleFactor);
+ if (position > 0) {
+ page.setTranslationX(-scaleFactor * 2);
+ } else if (position < 0) {
+ page.setTranslationX(scaleFactor * 2);
+ }
+ page.setScaleY(scaleFactor);
+ } else {
+ page.setScaleX(MIN_SCALE);
+ page.setScaleY(MIN_SCALE);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
index bc6bbca..6a93d0f 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java
@@ -114,7 +114,7 @@
private String id;
private String changeState;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private MediaPlayer mediaPlayer;
private QMUITipDialog submitDialog;
@@ -293,7 +293,7 @@
//核实照片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -353,7 +353,7 @@
//处理照片
String processImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(processImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = processImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
index 23f3260..d4f61b1 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -148,7 +147,7 @@
//核实图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -173,7 +172,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -198,7 +197,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
index e25aefd..2b65bb8 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java
@@ -30,7 +30,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -122,7 +121,7 @@
//核实图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -147,7 +146,7 @@
//处理图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
@@ -172,7 +171,7 @@
//核查图片
String checkImages = data.getFileIdCheck();
if (!TextUtils.isEmpty(checkImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = checkImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
index 7455b6e..da63f04 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java
@@ -114,7 +114,7 @@
private String caseReason;
private String approvalResult;
private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseDetailPresenterImpl caseDetailPresenter;
@@ -179,7 +179,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
index 3079857..443bcc5 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -117,7 +116,7 @@
//最初始的案卷图片
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
@@ -142,7 +141,7 @@
//案卷处理时候上传的图片
String handleImages = data.getFileIdProcess();
if (!TextUtils.isEmpty(handleImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = handleImages.split(",");
for (String s : split) {
if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
index 67621a8..2bf82a6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java
@@ -171,7 +171,7 @@
String verifyImages = data.getFileIdVerify();
if (!TextUtils.isEmpty(verifyImages)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = verifyImages.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
index 7e88437..5e8eee6 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -118,7 +117,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
index e65fa0a..cf3e900 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -121,7 +121,7 @@
private QMUITipDialog submitDialog, qmuiTipDialog;
private UploadImagePresenterImpl uploadImagePresenter;
private List imageList = new ArrayList<>();//服务器返回的拍照数据集
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private String eorc = "请选择";
private String typeCode = "请选择";
private String typeDetailCode = "请选择";//默认值,防止用户不选择直接跳过
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
index 253c2ab..b4d3bac 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java
@@ -89,7 +89,7 @@
private List smallClassBeans;
private QMUITipDialog submitDialog;
private UploadImagePresenterImpl uploadImagePresenter;
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List imageList = new ArrayList<>();//上传到服务器的数据集
private String eorc = "请选择";
private String typeCode = "请选择";
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
index 8a155f6..926aecb 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java
@@ -29,7 +29,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
@@ -121,7 +120,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
index c30bd0f..509d0be 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java
@@ -139,7 +139,7 @@
private MediaPlayer mediaPlayer;
private UploadImagePresenterImpl uploadImagePresenter;
private QMUITipDialog submitDialog;
- private List realPaths = new ArrayList<>();//真实图片路径
+ private ArrayList realPaths = new ArrayList<>();//真实图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private CaseNextNodePresenterImpl caseNextNodePresenter;
private CaseHandlePresenterImpl caseHandlePresenter;
@@ -226,7 +226,7 @@
//图片
String images = data.getFileIdVerify();
if (!TextUtils.isEmpty(images)) {
- List urls = new ArrayList<>();
+ ArrayList urls = new ArrayList<>();
String[] split = images.split(",");
for (String s : split) {
if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
index bfd99ef..1064b85 100644
--- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java
@@ -30,7 +30,6 @@
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.ToastHelper;
import com.casic.dcms.utils.callback.ILocationListener;
-import com.casic.dcms.widgets.BigPictureDialog;
import com.esri.arcgisruntime.geometry.Point;
import com.esri.arcgisruntime.layers.ArcGISTiledLayer;
import com.esri.arcgisruntime.mapping.ArcGISMap;
@@ -50,7 +49,6 @@
import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
import java.io.File;
-import java.util.Collections;
import butterknife.BindView;
import butterknife.OnClick;
@@ -254,11 +252,7 @@
pictureView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- new BigPictureDialog.Builder()
- .setContext(context)
- .setImageIndex(0)
- .setImageList(Collections.singletonList(realPath))
- .build().show();
+
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
index d78f2f5..7faa01b 100644
--- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java
@@ -75,7 +75,7 @@
private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter;
private ImageRecycleViewAdapter imageAdapter;
private QMUITipDialog submitDialog;
- private List realPaths = new ArrayList<>();//真是图片路径
+ private ArrayList realPaths = new ArrayList<>();//真是图片路径
private List mediaList = new ArrayList<>();//上传到服务器的数据集
private String gridId, shopID;
diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
index 170e274..c07978f 100644
--- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
@@ -17,6 +17,7 @@
private static Context context;
private static File audioDir;
private static File imageDir;
+ private static File waterImageDir;
private static File downloadDir;
public static void initFileConfig(Context context) {
@@ -42,6 +43,13 @@
Log.d(TAG, "initFileConfig: 创建CompressImageFile文件夹");
}
}
+ waterImageDir = new File(parentDir, "WaterImageFile");
+ if (!waterImageDir.exists()) {
+ boolean mkAudioDir = waterImageDir.mkdir();
+ if (mkAudioDir) {
+ Log.d(TAG, "initFileConfig: 创建WaterImageFile文件夹");
+ }
+ }
downloadDir = new File(parentDir, "DownloadFile");
if (!downloadDir.exists()) {
boolean mkDownDir = downloadDir.mkdir();
@@ -101,6 +109,36 @@
return imageDir.toString();
}
+ static File getWaterImageFile() {
+ //如果第一次初始化文件夹未创建成功,那就调用的时候再单独创建一次文件夹
+ if (waterImageDir == null) {
+ File parentDir = new File(context.getFilesDir().getAbsolutePath(), "Demo");
+ if (!parentDir.exists()) {
+ boolean mkdir = parentDir.mkdir();
+ if (mkdir) {
+ Log.d(TAG, "getWaterImageFile: 创建Demo文件夹");
+ }
+ }
+ waterImageDir = new File(parentDir, "WaterImageFile");
+ if (!waterImageDir.exists()) {
+ boolean mkAudioDir = waterImageDir.mkdir();
+ if (mkAudioDir) {
+ Log.d(TAG, "getWaterImageFile: 创建WaterImageFile文件夹");
+ }
+ }
+ }
+ String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date());
+ File imageFile = new File(waterImageDir + File.separator + "IMG_" + timeStamp + ".png");
+ if (!imageFile.exists()) {
+ try {
+ imageFile.createNewFile();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ return imageFile;
+ }
+
//储存下载文件的目录
static String getDownloadFilePath() {
if (downloadDir == null) {
diff --git a/app/src/main/java/com/casic/dcms/utils/OtherUtils.java b/app/src/main/java/com/casic/dcms/utils/OtherUtils.java
index 407d70e..55a56a3 100644
--- a/app/src/main/java/com/casic/dcms/utils/OtherUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/OtherUtils.java
@@ -5,6 +5,11 @@
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Rect;
import android.os.Build;
import android.provider.Settings;
import android.telephony.TelephonyManager;
@@ -13,9 +18,10 @@
import androidx.core.app.ActivityCompat;
+import com.casic.dcms.ui.BigImageActivity;
import com.casic.dcms.ui.CaseProcessActivity;
import com.casic.dcms.utils.callback.IDownloadListener;
-import com.casic.dcms.widgets.BigPictureDialog;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import org.jetbrains.annotations.NotNull;
@@ -24,7 +30,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
-import java.util.List;
+import java.util.ArrayList;
import okhttp3.Call;
import okhttp3.Callback;
@@ -36,9 +42,61 @@
public class OtherUtils {
private static final String TAG = "OtherUtils";
+ /**
+ * 绘制文字到右下角
+ */
+ public static String drawTextToRightBottom(Context context, Bitmap bitmap, String name, String date, String time) {
+ //初始化画笔
+ Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ paint.setColor(Color.RED);
+ paint.setDither(true); // 获取跟清晰的图像采样
+ paint.setFilterBitmap(true);// 过滤一些
+ paint.setTextSize(QMUIDisplayHelper.dp2px(context, 20));
+ Rect nameBounds = new Rect();
+ paint.getTextBounds(name, 0, name.length(), nameBounds);
+ Rect dateBounds = new Rect();
+ paint.getTextBounds(date, 0, date.length(), dateBounds);
+ Rect timeBounds = new Rect();
+ paint.getTextBounds(time, 0, time.length(), timeBounds);
+
+ //添加水印
+ android.graphics.Bitmap.Config bitmapConfig = bitmap.getConfig();
+ if (bitmapConfig == null) {
+ bitmapConfig = Bitmap.Config.RGB_565;
+ }
+ bitmap = bitmap.copy(bitmapConfig, true);
+
+ Canvas canvas = new Canvas(bitmap);
+ final int bitmapWidth = bitmap.getWidth();
+ final int bitmapHeight = bitmap.getHeight();
+ final int paddingRight = QMUIDisplayHelper.dp2px(context, 10);
+ //有几行就写几行
+ canvas.drawText(name, bitmapWidth - nameBounds.width() - paddingRight,
+ bitmapHeight - QMUIDisplayHelper.dp2px(context, 55), paint);
+ canvas.drawText(date, bitmapWidth - dateBounds.width() - paddingRight,
+ bitmapHeight - QMUIDisplayHelper.dp2px(context, 30), paint);
+ canvas.drawText(time, bitmapWidth - timeBounds.width() - paddingRight,
+ bitmapHeight - QMUIDisplayHelper.dp2px(context, 10), paint);
+
+ //将带有水印的图片保存
+ File file = FileUtils.getWaterImageFile();
+ try {
+ FileOutputStream fos = new FileOutputStream(file);
+ bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
+ fos.flush();
+ fos.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return file.getAbsolutePath();
+ }
+
//查看大图
- public static void showBigImage(Context context, int index, List imageList) {
- new BigPictureDialog.Builder().setContext(context).setImageIndex(index).setImageList(imageList).build().show();
+ public static void showBigImage(Context context, int index, ArrayList imageList) {
+ Intent intent = new Intent(context, BigImageActivity.class);
+ intent.putExtra("index", index);
+ intent.putStringArrayListExtra("images", imageList);
+ context.startActivity(intent);
}
//查看案卷处理记录
diff --git a/app/src/main/java/com/casic/dcms/utils/WaterImageFileProvider.java b/app/src/main/java/com/casic/dcms/utils/WaterImageFileProvider.java
new file mode 100644
index 0000000..4102901
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/utils/WaterImageFileProvider.java
@@ -0,0 +1,6 @@
+package com.casic.dcms.utils;
+
+import androidx.core.content.FileProvider;
+
+public class WaterImageFileProvider extends FileProvider {
+}
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
index f5dc11e..fb128b7 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
@@ -1,7 +1,10 @@
package com.casic.dcms.utils.retrofit;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
import android.util.Log;
+import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.bean.ActionResultBean;
import com.casic.dcms.bean.CaseCheckBean;
import com.casic.dcms.bean.CaseCheckedBean;
@@ -32,7 +35,10 @@
import com.casic.dcms.utils.AuthenticationHelper;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.HttpConfig;
+import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.SaveKeyValues;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.TimeOrDateUtil;
import org.jetbrains.annotations.NotNull;
@@ -289,9 +295,16 @@
* http://xx.com/static/2019-10/8050891248624f2bbefedcb196ce89cb.jpeg
*/
public static Observable getImageUploadResult(File image) {
+ //改为上传带水印的图片
+ Bitmap bitmap = BitmapFactory.decodeFile(image.getAbsolutePath());
+ String path = OtherUtils.drawTextToRightBottom(BaseApplication.getInstance(), bitmap,
+ StringHelper.getUserAccount(),
+ TimeOrDateUtil.rTimestampToDate(System.currentTimeMillis()),
+ TimeOrDateUtil.timestampToTime(System.currentTimeMillis()));
+
Retrofit retrofit = createRetrofit();
RetrofitService service = retrofit.create(RetrofitService.class);
- RequestBody requestBody = RequestBody.create(MediaType.parse("image/png"), image);
+ RequestBody requestBody = RequestBody.create(MediaType.parse("image/png"), new File(path));
MultipartBody.Part imagePart = MultipartBody.Part.createFormData("file", image.getName(), requestBody);
return service.uploadImage(AuthenticationHelper.getToken(), imagePart);
}
diff --git a/app/src/main/java/com/casic/dcms/widgets/BigPictureDialog.java b/app/src/main/java/com/casic/dcms/widgets/BigPictureDialog.java
deleted file mode 100644
index f81e17e..0000000
--- a/app/src/main/java/com/casic/dcms/widgets/BigPictureDialog.java
+++ /dev/null
@@ -1,176 +0,0 @@
-package com.casic.dcms.widgets;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.Window;
-import android.view.WindowManager;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-import androidx.appcompat.app.AlertDialog;
-import androidx.viewpager.widget.PagerAdapter;
-import androidx.viewpager.widget.ViewPager;
-
-import com.bumptech.glide.Glide;
-import com.casic.dcms.R;
-import com.luck.picture.lib.photoview.PhotoView;
-import com.qmuiteam.qmui.util.QMUIDisplayHelper;
-
-import org.jetbrains.annotations.NotNull;
-
-import java.util.List;
-
-public class BigPictureDialog extends AlertDialog {
-
- private Context context;
- private int index;
- private List data;
- private TextView pageNumberView;
- private ViewPager imagePagerView;
- private Window window;
- private int maxWidth, maxHeight;
-
- private BigPictureDialog(Builder builder) {
- super(builder.mContext, R.style.CustomDialogStyle);
- this.context = builder.mContext;
- this.index = builder.index;
- this.data = builder.images;
- }
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.dialog_big_picture);
-
- pageNumberView = findViewById(R.id.pageNumberView);
- imagePagerView = findViewById(R.id.imagePagerView);
- initData();
- window = getWindow();
-
- maxWidth = (int) (QMUIDisplayHelper.getScreenWidth(context) * 0.9);
- maxHeight = (int) (QMUIDisplayHelper.getScreenHeight(context) * 0.8);
-
- setCancelable(true);
- setCanceledOnTouchOutside(true);
- }
-
- @Override
- public void onAttachedToWindow() {
- super.onAttachedToWindow();
- WindowManager.LayoutParams layoutParams = window.getAttributes();
- layoutParams.width = maxWidth;
- layoutParams.height = maxHeight;
- window.setAttributes(layoutParams);
- }
-
- private void initData() {
- imagePagerView.setAdapter(new BigPictureAdapter());
- imagePagerView.setCurrentItem(index);
- imagePagerView.setOffscreenPageLimit(2);//设置预加载数量
- imagePagerView.setPageMargin(10);//控制两幅图之间的间距
- imagePagerView.setPageTransformer(true, new ZoomOutPageTransformer());
- imagePagerView.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
- @Override
- public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
-
- }
-
- @SuppressLint("SetTextI18n")
- @Override
- public void onPageSelected(int position) {
- pageNumberView.setText("(" + (position + 1) + "/" + data.size() + ")");
- }
-
- @Override
- public void onPageScrollStateChanged(int state) {
-
- }
- });
- }
-
- class BigPictureAdapter extends PagerAdapter {
-
- @Override
- public int getCount() {
- return data.size();
- }
-
- @Override
- public boolean isViewFromObject(@NotNull View view, @NotNull Object object) {
- return view == object;
- }
-
- @NotNull
- @Override
- public Object instantiateItem(@NotNull ViewGroup container, int position) {
- View view = LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false);
- PhotoView photoView = view.findViewById(R.id.photoView);
- Glide.with(context).load(data.get(position)).into(photoView);
- photoView.setScaleType(ImageView.ScaleType.FIT_XY);
- LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(maxWidth, maxHeight);
- photoView.setLayoutParams(layoutParams);
- container.addView(view);
- return view;
- }
-
- @Override
- public void destroyItem(ViewGroup container, int position, @NotNull Object object) {
- container.removeView((View) object);
- }
- }
-
- //设置切换动画
- public static class ZoomOutPageTransformer implements ViewPager.PageTransformer {
- //自由控制缩放比例
- private static final float MAX_SCALE = 1f;
- private static final float MIN_SCALE = 0.85f;//0.85f
-
- @Override
- public void transformPage(@NotNull View page, float position) {
-
- if (position <= 1) {
- float scaleFactor = MIN_SCALE + (1 - Math.abs(position)) * (MAX_SCALE - MIN_SCALE);
- page.setScaleX(scaleFactor);
- if (position > 0) {
- page.setTranslationX(-scaleFactor * 2);
- } else if (position < 0) {
- page.setTranslationX(scaleFactor * 2);
- }
- page.setScaleY(scaleFactor);
- } else {
- page.setScaleX(MIN_SCALE);
- page.setScaleY(MIN_SCALE);
- }
- }
- }
-
- public static class Builder {
- private Context mContext;
- private int index;
- private List images;
-
- public Builder setContext(Context mContext) {
- this.mContext = mContext;
- return this;
- }
-
- public Builder setImageIndex(int imageIndex) {
- this.index = imageIndex;
- return this;
- }
-
- public Builder setImageList(List images) {
- this.images = images;
- return this;
- }
-
- public BigPictureDialog build() {
- return new BigPictureDialog(this);
- }
- }
-}
diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml
new file mode 100644
index 0000000..54d8cb4
--- /dev/null
+++ b/app/src/main/res/layout/activity_big_image.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_big_picture.xml b/app/src/main/res/layout/dialog_big_picture.xml
deleted file mode 100644
index bffbb84..0000000
--- a/app/src/main/res/layout/dialog_big_picture.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_big_picture.xml b/app/src/main/res/layout/item_big_picture.xml
index 489867f..28b4b7c 100644
--- a/app/src/main/res/layout/item_big_picture.xml
+++ b/app/src/main/res/layout/item_big_picture.xml
@@ -2,10 +2,11 @@
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
\ No newline at end of file