diff --git a/app/build.gradle b/app/build.gradle
index db128b4..af9b29a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -98,4 +98,8 @@
implementation "androidx.camera:camera-view:$camerax_version"
//PDF预览
implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'
+ //图片加载框架
+ implementation 'com.github.bumptech.glide:glide:4.9.0'
+ //图片选择框架
+ implementation 'io.github.lucksiege:pictureselector:v3.11.1'
}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index db128b4..af9b29a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -98,4 +98,8 @@
implementation "androidx.camera:camera-view:$camerax_version"
//PDF预览
implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'
+ //图片加载框架
+ implementation 'com.github.bumptech.glide:glide:4.9.0'
+ //图片选择框架
+ implementation 'io.github.lucksiege:pictureselector:v3.11.1'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 544ae3b..72f9448 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -65,6 +65,10 @@
+
+
diff --git a/app/build.gradle b/app/build.gradle
index db128b4..af9b29a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -98,4 +98,8 @@
implementation "androidx.camera:camera-view:$camerax_version"
//PDF预览
implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'
+ //图片加载框架
+ implementation 'com.github.bumptech.glide:glide:4.9.0'
+ //图片选择框架
+ implementation 'io.github.lucksiege:pictureselector:v3.11.1'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 544ae3b..72f9448 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -65,6 +65,10 @@
+
+
diff --git a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
index bb21b14..63ed382 100644
--- a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
@@ -46,7 +46,7 @@
private String basis;
private String content;
private String id;
- private String imageList;
+ private List imageList;
private String inspectionId;
private String mainClass;
private String mainClassName;
@@ -88,11 +88,11 @@
this.id = id;
}
- public String getImageList() {
+ public List getImageList() {
return imageList;
}
- public void setImageList(String imageList) {
+ public void setImageList(List imageList) {
this.imageList = imageList;
}
@@ -159,5 +159,35 @@
public void setSubClassName(String subClassName) {
this.subClassName = subClassName;
}
+
+ public static class ImageListModel {
+ private String alarmImage;
+ private String id;
+ private String inspectionAlarmId;
+
+ public String getAlarmImage() {
+ return alarmImage;
+ }
+
+ public void setAlarmImage(String alarmImage) {
+ this.alarmImage = alarmImage;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getInspectionAlarmId() {
+ return inspectionAlarmId;
+ }
+
+ public void setInspectionAlarmId(String inspectionAlarmId) {
+ this.inspectionAlarmId = inspectionAlarmId;
+ }
+ }
}
}
diff --git a/app/build.gradle b/app/build.gradle
index db128b4..af9b29a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -98,4 +98,8 @@
implementation "androidx.camera:camera-view:$camerax_version"
//PDF预览
implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'
+ //图片加载框架
+ implementation 'com.github.bumptech.glide:glide:4.9.0'
+ //图片选择框架
+ implementation 'io.github.lucksiege:pictureselector:v3.11.1'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 544ae3b..72f9448 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -65,6 +65,10 @@
+
+
diff --git a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
index bb21b14..63ed382 100644
--- a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
@@ -46,7 +46,7 @@
private String basis;
private String content;
private String id;
- private String imageList;
+ private List imageList;
private String inspectionId;
private String mainClass;
private String mainClassName;
@@ -88,11 +88,11 @@
this.id = id;
}
- public String getImageList() {
+ public List getImageList() {
return imageList;
}
- public void setImageList(String imageList) {
+ public void setImageList(List imageList) {
this.imageList = imageList;
}
@@ -159,5 +159,35 @@
public void setSubClassName(String subClassName) {
this.subClassName = subClassName;
}
+
+ public static class ImageListModel {
+ private String alarmImage;
+ private String id;
+ private String inspectionAlarmId;
+
+ public String getAlarmImage() {
+ return alarmImage;
+ }
+
+ public void setAlarmImage(String alarmImage) {
+ this.alarmImage = alarmImage;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getInspectionAlarmId() {
+ return inspectionAlarmId;
+ }
+
+ public void setInspectionAlarmId(String inspectionAlarmId) {
+ this.inspectionAlarmId = inspectionAlarmId;
+ }
+ }
}
}
diff --git a/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt b/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt
new file mode 100644
index 0000000..03826c5
--- /dev/null
+++ b/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt
@@ -0,0 +1,89 @@
+package com.casic.br.app.view
+
+import android.content.Context
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import androidx.viewpager.widget.PagerAdapter
+import androidx.viewpager.widget.ViewPager
+import com.bumptech.glide.Glide
+import com.casic.br.app.R
+import com.casic.br.app.databinding.ActivityBigImageBinding
+import com.casic.br.app.extensions.initImmersionBar
+import com.luck.picture.lib.photoview.PhotoView
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+
+class BigImageActivity : KotlinBaseActivity() {
+ override fun initViewBinding(): ActivityBigImageBinding {
+ return ActivityBigImageBinding.inflate(layoutInflater)
+ }
+
+ override fun setupTopBarLayout() {
+ binding.rootView.initImmersionBar(this, false, R.color.black)
+ binding.leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0)
+ val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY)
+ if (urls == null || urls.size == 0) {
+ return
+ }
+ val imageSize = urls.size
+ binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
+ binding.imagePagerView.adapter = BigImageAdapter(this, urls)
+ binding.imagePagerView.currentItem = index
+ binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+ override fun onPageScrolled(
+ position: Int, positionOffset: Float, positionOffsetPixels: Int
+ ) {
+ }
+
+ override fun onPageSelected(position: Int) {
+ binding.pageNumberView.text =
+ String.format("(" + (position + 1) + "/" + imageSize + ")")
+ }
+
+ override fun onPageScrollStateChanged(state: Int) {}
+ })
+ }
+
+ inner class BigImageAdapter(
+ private val context: Context, private val data: ArrayList
+ ) : PagerAdapter() {
+
+ override fun getCount(): Int = data.size
+
+ override fun isViewFromObject(view: View, any: Any): Boolean {
+ return view == any
+ }
+
+ override fun instantiateItem(container: ViewGroup, position: Int): Any {
+ val view = LayoutInflater.from(context).inflate(
+ R.layout.item_big_picture, container, false
+ )
+ val photoView: PhotoView = view.findViewById(R.id.photoView)
+ Glide.with(context).load(data[position]).into(photoView)
+ photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE
+ container.addView(view)
+ //点击大图取消预览
+ photoView.setOnClickListener { finish() }
+ return view
+ }
+
+ override fun destroyItem(container: ViewGroup, position: Int, any: Any) {
+ container.removeView(any as View)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index db128b4..af9b29a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -98,4 +98,8 @@
implementation "androidx.camera:camera-view:$camerax_version"
//PDF预览
implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'
+ //图片加载框架
+ implementation 'com.github.bumptech.glide:glide:4.9.0'
+ //图片选择框架
+ implementation 'io.github.lucksiege:pictureselector:v3.11.1'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 544ae3b..72f9448 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -65,6 +65,10 @@
+
+
diff --git a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
index bb21b14..63ed382 100644
--- a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
@@ -46,7 +46,7 @@
private String basis;
private String content;
private String id;
- private String imageList;
+ private List imageList;
private String inspectionId;
private String mainClass;
private String mainClassName;
@@ -88,11 +88,11 @@
this.id = id;
}
- public String getImageList() {
+ public List getImageList() {
return imageList;
}
- public void setImageList(String imageList) {
+ public void setImageList(List imageList) {
this.imageList = imageList;
}
@@ -159,5 +159,35 @@
public void setSubClassName(String subClassName) {
this.subClassName = subClassName;
}
+
+ public static class ImageListModel {
+ private String alarmImage;
+ private String id;
+ private String inspectionAlarmId;
+
+ public String getAlarmImage() {
+ return alarmImage;
+ }
+
+ public void setAlarmImage(String alarmImage) {
+ this.alarmImage = alarmImage;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getInspectionAlarmId() {
+ return inspectionAlarmId;
+ }
+
+ public void setInspectionAlarmId(String inspectionAlarmId) {
+ this.inspectionAlarmId = inspectionAlarmId;
+ }
+ }
}
}
diff --git a/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt b/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt
new file mode 100644
index 0000000..03826c5
--- /dev/null
+++ b/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt
@@ -0,0 +1,89 @@
+package com.casic.br.app.view
+
+import android.content.Context
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import androidx.viewpager.widget.PagerAdapter
+import androidx.viewpager.widget.ViewPager
+import com.bumptech.glide.Glide
+import com.casic.br.app.R
+import com.casic.br.app.databinding.ActivityBigImageBinding
+import com.casic.br.app.extensions.initImmersionBar
+import com.luck.picture.lib.photoview.PhotoView
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+
+class BigImageActivity : KotlinBaseActivity() {
+ override fun initViewBinding(): ActivityBigImageBinding {
+ return ActivityBigImageBinding.inflate(layoutInflater)
+ }
+
+ override fun setupTopBarLayout() {
+ binding.rootView.initImmersionBar(this, false, R.color.black)
+ binding.leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0)
+ val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY)
+ if (urls == null || urls.size == 0) {
+ return
+ }
+ val imageSize = urls.size
+ binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
+ binding.imagePagerView.adapter = BigImageAdapter(this, urls)
+ binding.imagePagerView.currentItem = index
+ binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+ override fun onPageScrolled(
+ position: Int, positionOffset: Float, positionOffsetPixels: Int
+ ) {
+ }
+
+ override fun onPageSelected(position: Int) {
+ binding.pageNumberView.text =
+ String.format("(" + (position + 1) + "/" + imageSize + ")")
+ }
+
+ override fun onPageScrollStateChanged(state: Int) {}
+ })
+ }
+
+ inner class BigImageAdapter(
+ private val context: Context, private val data: ArrayList
+ ) : PagerAdapter() {
+
+ override fun getCount(): Int = data.size
+
+ override fun isViewFromObject(view: View, any: Any): Boolean {
+ return view == any
+ }
+
+ override fun instantiateItem(container: ViewGroup, position: Int): Any {
+ val view = LayoutInflater.from(context).inflate(
+ R.layout.item_big_picture, container, false
+ )
+ val photoView: PhotoView = view.findViewById(R.id.photoView)
+ Glide.with(context).load(data[position]).into(photoView)
+ photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE
+ container.addView(view)
+ //点击大图取消预览
+ photoView.setOnClickListener { finish() }
+ return view
+ }
+
+ override fun destroyItem(container: ViewGroup, position: Int, any: Any) {
+ container.removeView(any as View)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
index f75e755..caf87cd 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
@@ -95,7 +95,13 @@
viewHolder: ViewHolder, position: Int,
item: CheckHistoryModel.DataModel.RowsModel
) {
- //TODO 数据未绑定
+ viewHolder.setText(
+ R.id.checkTimeView,
+ "${item.inspectionDate} ${item.startTime}-${item.endTime}"
+ )
+ .setText(R.id.checkSiteView, item.inspectionAddress)
+ .setText(R.id.troubleCountView, item.alarmCount)
+ .setText(R.id.checkPersonView, item.inspectionUser)
}
}
binding.recyclerView.adapter = checkHistoryAdapter
diff --git a/app/build.gradle b/app/build.gradle
index db128b4..af9b29a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -98,4 +98,8 @@
implementation "androidx.camera:camera-view:$camerax_version"
//PDF预览
implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'
+ //图片加载框架
+ implementation 'com.github.bumptech.glide:glide:4.9.0'
+ //图片选择框架
+ implementation 'io.github.lucksiege:pictureselector:v3.11.1'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 544ae3b..72f9448 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -65,6 +65,10 @@
+
+
diff --git a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
index bb21b14..63ed382 100644
--- a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
@@ -46,7 +46,7 @@
private String basis;
private String content;
private String id;
- private String imageList;
+ private List imageList;
private String inspectionId;
private String mainClass;
private String mainClassName;
@@ -88,11 +88,11 @@
this.id = id;
}
- public String getImageList() {
+ public List getImageList() {
return imageList;
}
- public void setImageList(String imageList) {
+ public void setImageList(List imageList) {
this.imageList = imageList;
}
@@ -159,5 +159,35 @@
public void setSubClassName(String subClassName) {
this.subClassName = subClassName;
}
+
+ public static class ImageListModel {
+ private String alarmImage;
+ private String id;
+ private String inspectionAlarmId;
+
+ public String getAlarmImage() {
+ return alarmImage;
+ }
+
+ public void setAlarmImage(String alarmImage) {
+ this.alarmImage = alarmImage;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getInspectionAlarmId() {
+ return inspectionAlarmId;
+ }
+
+ public void setInspectionAlarmId(String inspectionAlarmId) {
+ this.inspectionAlarmId = inspectionAlarmId;
+ }
+ }
}
}
diff --git a/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt b/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt
new file mode 100644
index 0000000..03826c5
--- /dev/null
+++ b/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt
@@ -0,0 +1,89 @@
+package com.casic.br.app.view
+
+import android.content.Context
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import androidx.viewpager.widget.PagerAdapter
+import androidx.viewpager.widget.ViewPager
+import com.bumptech.glide.Glide
+import com.casic.br.app.R
+import com.casic.br.app.databinding.ActivityBigImageBinding
+import com.casic.br.app.extensions.initImmersionBar
+import com.luck.picture.lib.photoview.PhotoView
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+
+class BigImageActivity : KotlinBaseActivity() {
+ override fun initViewBinding(): ActivityBigImageBinding {
+ return ActivityBigImageBinding.inflate(layoutInflater)
+ }
+
+ override fun setupTopBarLayout() {
+ binding.rootView.initImmersionBar(this, false, R.color.black)
+ binding.leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0)
+ val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY)
+ if (urls == null || urls.size == 0) {
+ return
+ }
+ val imageSize = urls.size
+ binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
+ binding.imagePagerView.adapter = BigImageAdapter(this, urls)
+ binding.imagePagerView.currentItem = index
+ binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+ override fun onPageScrolled(
+ position: Int, positionOffset: Float, positionOffsetPixels: Int
+ ) {
+ }
+
+ override fun onPageSelected(position: Int) {
+ binding.pageNumberView.text =
+ String.format("(" + (position + 1) + "/" + imageSize + ")")
+ }
+
+ override fun onPageScrollStateChanged(state: Int) {}
+ })
+ }
+
+ inner class BigImageAdapter(
+ private val context: Context, private val data: ArrayList
+ ) : PagerAdapter() {
+
+ override fun getCount(): Int = data.size
+
+ override fun isViewFromObject(view: View, any: Any): Boolean {
+ return view == any
+ }
+
+ override fun instantiateItem(container: ViewGroup, position: Int): Any {
+ val view = LayoutInflater.from(context).inflate(
+ R.layout.item_big_picture, container, false
+ )
+ val photoView: PhotoView = view.findViewById(R.id.photoView)
+ Glide.with(context).load(data[position]).into(photoView)
+ photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE
+ container.addView(view)
+ //点击大图取消预览
+ photoView.setOnClickListener { finish() }
+ return view
+ }
+
+ override fun destroyItem(container: ViewGroup, position: Int, any: Any) {
+ container.removeView(any as View)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
index f75e755..caf87cd 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
@@ -95,7 +95,13 @@
viewHolder: ViewHolder, position: Int,
item: CheckHistoryModel.DataModel.RowsModel
) {
- //TODO 数据未绑定
+ viewHolder.setText(
+ R.id.checkTimeView,
+ "${item.inspectionDate} ${item.startTime}-${item.endTime}"
+ )
+ .setText(R.id.checkSiteView, item.inspectionAddress)
+ .setText(R.id.troubleCountView, item.alarmCount)
+ .setText(R.id.checkPersonView, item.inspectionUser)
}
}
binding.recyclerView.adapter = checkHistoryAdapter
diff --git a/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
index f1704d0..fec55b7 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
@@ -1,9 +1,12 @@
package com.casic.br.app.view
import android.os.Bundle
+import android.widget.AdapterView
+import android.widget.GridView
import androidx.lifecycle.ViewModelProvider
import com.casic.br.app.R
import com.casic.br.app.databinding.ActivityCheckHistoryDetailBinding
+import com.casic.br.app.extensions.combineFilePath
import com.casic.br.app.extensions.initImmersionBar
import com.casic.br.app.model.CheckHistoryDetailModel
import com.casic.br.app.model.CheckHistoryModel
@@ -11,10 +14,12 @@
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets
import com.pengxh.kt.lite.extensions.dp2px
+import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.LoadState
@@ -62,13 +67,17 @@
R.id.troubleTypeView, "${item.mainClassName}-${item.subClassName}"
).setText(R.id.troubleNameView, item.name)
.setText(R.id.troubleContentView, item.content)
-// val gridView = viewHolder.getView(R.id.troubleImageView)
-// val imageAdapter = ReadOnlyImageAdapter(context, item.imageList)
-// gridView.adapter = imageAdapter
-// gridView.onItemClickListener =
-// AdapterView.OnItemClickListener { adapterView, view, position, l ->
-//
-// }
+ val gridView = viewHolder.getView(R.id.troubleImageView)
+ val images = ArrayList()
+ item.imageList.forEach { imageModel ->
+ images.add(imageModel.alarmImage.combineFilePath())
+ }
+ val imageAdapter = ReadOnlyImageAdapter(context, images)
+ gridView.adapter = imageAdapter
+ gridView.onItemClickListener =
+ AdapterView.OnItemClickListener { _, _, index, _ ->
+ navigatePageTo(index, images)
+ }
}
}
binding.recyclerView.adapter = detailAdapter
diff --git a/app/build.gradle b/app/build.gradle
index db128b4..af9b29a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -98,4 +98,8 @@
implementation "androidx.camera:camera-view:$camerax_version"
//PDF预览
implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'
+ //图片加载框架
+ implementation 'com.github.bumptech.glide:glide:4.9.0'
+ //图片选择框架
+ implementation 'io.github.lucksiege:pictureselector:v3.11.1'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 544ae3b..72f9448 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -65,6 +65,10 @@
+
+
diff --git a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
index bb21b14..63ed382 100644
--- a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
@@ -46,7 +46,7 @@
private String basis;
private String content;
private String id;
- private String imageList;
+ private List imageList;
private String inspectionId;
private String mainClass;
private String mainClassName;
@@ -88,11 +88,11 @@
this.id = id;
}
- public String getImageList() {
+ public List getImageList() {
return imageList;
}
- public void setImageList(String imageList) {
+ public void setImageList(List imageList) {
this.imageList = imageList;
}
@@ -159,5 +159,35 @@
public void setSubClassName(String subClassName) {
this.subClassName = subClassName;
}
+
+ public static class ImageListModel {
+ private String alarmImage;
+ private String id;
+ private String inspectionAlarmId;
+
+ public String getAlarmImage() {
+ return alarmImage;
+ }
+
+ public void setAlarmImage(String alarmImage) {
+ this.alarmImage = alarmImage;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getInspectionAlarmId() {
+ return inspectionAlarmId;
+ }
+
+ public void setInspectionAlarmId(String inspectionAlarmId) {
+ this.inspectionAlarmId = inspectionAlarmId;
+ }
+ }
}
}
diff --git a/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt b/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt
new file mode 100644
index 0000000..03826c5
--- /dev/null
+++ b/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt
@@ -0,0 +1,89 @@
+package com.casic.br.app.view
+
+import android.content.Context
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import androidx.viewpager.widget.PagerAdapter
+import androidx.viewpager.widget.ViewPager
+import com.bumptech.glide.Glide
+import com.casic.br.app.R
+import com.casic.br.app.databinding.ActivityBigImageBinding
+import com.casic.br.app.extensions.initImmersionBar
+import com.luck.picture.lib.photoview.PhotoView
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+
+class BigImageActivity : KotlinBaseActivity() {
+ override fun initViewBinding(): ActivityBigImageBinding {
+ return ActivityBigImageBinding.inflate(layoutInflater)
+ }
+
+ override fun setupTopBarLayout() {
+ binding.rootView.initImmersionBar(this, false, R.color.black)
+ binding.leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0)
+ val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY)
+ if (urls == null || urls.size == 0) {
+ return
+ }
+ val imageSize = urls.size
+ binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
+ binding.imagePagerView.adapter = BigImageAdapter(this, urls)
+ binding.imagePagerView.currentItem = index
+ binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+ override fun onPageScrolled(
+ position: Int, positionOffset: Float, positionOffsetPixels: Int
+ ) {
+ }
+
+ override fun onPageSelected(position: Int) {
+ binding.pageNumberView.text =
+ String.format("(" + (position + 1) + "/" + imageSize + ")")
+ }
+
+ override fun onPageScrollStateChanged(state: Int) {}
+ })
+ }
+
+ inner class BigImageAdapter(
+ private val context: Context, private val data: ArrayList
+ ) : PagerAdapter() {
+
+ override fun getCount(): Int = data.size
+
+ override fun isViewFromObject(view: View, any: Any): Boolean {
+ return view == any
+ }
+
+ override fun instantiateItem(container: ViewGroup, position: Int): Any {
+ val view = LayoutInflater.from(context).inflate(
+ R.layout.item_big_picture, container, false
+ )
+ val photoView: PhotoView = view.findViewById(R.id.photoView)
+ Glide.with(context).load(data[position]).into(photoView)
+ photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE
+ container.addView(view)
+ //点击大图取消预览
+ photoView.setOnClickListener { finish() }
+ return view
+ }
+
+ override fun destroyItem(container: ViewGroup, position: Int, any: Any) {
+ container.removeView(any as View)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
index f75e755..caf87cd 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
@@ -95,7 +95,13 @@
viewHolder: ViewHolder, position: Int,
item: CheckHistoryModel.DataModel.RowsModel
) {
- //TODO 数据未绑定
+ viewHolder.setText(
+ R.id.checkTimeView,
+ "${item.inspectionDate} ${item.startTime}-${item.endTime}"
+ )
+ .setText(R.id.checkSiteView, item.inspectionAddress)
+ .setText(R.id.troubleCountView, item.alarmCount)
+ .setText(R.id.checkPersonView, item.inspectionUser)
}
}
binding.recyclerView.adapter = checkHistoryAdapter
diff --git a/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
index f1704d0..fec55b7 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
@@ -1,9 +1,12 @@
package com.casic.br.app.view
import android.os.Bundle
+import android.widget.AdapterView
+import android.widget.GridView
import androidx.lifecycle.ViewModelProvider
import com.casic.br.app.R
import com.casic.br.app.databinding.ActivityCheckHistoryDetailBinding
+import com.casic.br.app.extensions.combineFilePath
import com.casic.br.app.extensions.initImmersionBar
import com.casic.br.app.model.CheckHistoryDetailModel
import com.casic.br.app.model.CheckHistoryModel
@@ -11,10 +14,12 @@
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets
import com.pengxh.kt.lite.extensions.dp2px
+import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.LoadState
@@ -62,13 +67,17 @@
R.id.troubleTypeView, "${item.mainClassName}-${item.subClassName}"
).setText(R.id.troubleNameView, item.name)
.setText(R.id.troubleContentView, item.content)
-// val gridView = viewHolder.getView(R.id.troubleImageView)
-// val imageAdapter = ReadOnlyImageAdapter(context, item.imageList)
-// gridView.adapter = imageAdapter
-// gridView.onItemClickListener =
-// AdapterView.OnItemClickListener { adapterView, view, position, l ->
-//
-// }
+ val gridView = viewHolder.getView(R.id.troubleImageView)
+ val images = ArrayList()
+ item.imageList.forEach { imageModel ->
+ images.add(imageModel.alarmImage.combineFilePath())
+ }
+ val imageAdapter = ReadOnlyImageAdapter(context, images)
+ gridView.adapter = imageAdapter
+ gridView.onItemClickListener =
+ AdapterView.OnItemClickListener { _, _, index, _ ->
+ navigatePageTo(index, images)
+ }
}
}
binding.recyclerView.adapter = detailAdapter
diff --git a/app/src/main/res/anim/activity_in.xml b/app/src/main/res/anim/activity_in.xml
new file mode 100644
index 0000000..f2696ba
--- /dev/null
+++ b/app/src/main/res/anim/activity_in.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index db128b4..af9b29a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -98,4 +98,8 @@
implementation "androidx.camera:camera-view:$camerax_version"
//PDF预览
implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'
+ //图片加载框架
+ implementation 'com.github.bumptech.glide:glide:4.9.0'
+ //图片选择框架
+ implementation 'io.github.lucksiege:pictureselector:v3.11.1'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 544ae3b..72f9448 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -65,6 +65,10 @@
+
+
diff --git a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
index bb21b14..63ed382 100644
--- a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
@@ -46,7 +46,7 @@
private String basis;
private String content;
private String id;
- private String imageList;
+ private List imageList;
private String inspectionId;
private String mainClass;
private String mainClassName;
@@ -88,11 +88,11 @@
this.id = id;
}
- public String getImageList() {
+ public List getImageList() {
return imageList;
}
- public void setImageList(String imageList) {
+ public void setImageList(List imageList) {
this.imageList = imageList;
}
@@ -159,5 +159,35 @@
public void setSubClassName(String subClassName) {
this.subClassName = subClassName;
}
+
+ public static class ImageListModel {
+ private String alarmImage;
+ private String id;
+ private String inspectionAlarmId;
+
+ public String getAlarmImage() {
+ return alarmImage;
+ }
+
+ public void setAlarmImage(String alarmImage) {
+ this.alarmImage = alarmImage;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getInspectionAlarmId() {
+ return inspectionAlarmId;
+ }
+
+ public void setInspectionAlarmId(String inspectionAlarmId) {
+ this.inspectionAlarmId = inspectionAlarmId;
+ }
+ }
}
}
diff --git a/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt b/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt
new file mode 100644
index 0000000..03826c5
--- /dev/null
+++ b/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt
@@ -0,0 +1,89 @@
+package com.casic.br.app.view
+
+import android.content.Context
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import androidx.viewpager.widget.PagerAdapter
+import androidx.viewpager.widget.ViewPager
+import com.bumptech.glide.Glide
+import com.casic.br.app.R
+import com.casic.br.app.databinding.ActivityBigImageBinding
+import com.casic.br.app.extensions.initImmersionBar
+import com.luck.picture.lib.photoview.PhotoView
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+
+class BigImageActivity : KotlinBaseActivity() {
+ override fun initViewBinding(): ActivityBigImageBinding {
+ return ActivityBigImageBinding.inflate(layoutInflater)
+ }
+
+ override fun setupTopBarLayout() {
+ binding.rootView.initImmersionBar(this, false, R.color.black)
+ binding.leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0)
+ val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY)
+ if (urls == null || urls.size == 0) {
+ return
+ }
+ val imageSize = urls.size
+ binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
+ binding.imagePagerView.adapter = BigImageAdapter(this, urls)
+ binding.imagePagerView.currentItem = index
+ binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+ override fun onPageScrolled(
+ position: Int, positionOffset: Float, positionOffsetPixels: Int
+ ) {
+ }
+
+ override fun onPageSelected(position: Int) {
+ binding.pageNumberView.text =
+ String.format("(" + (position + 1) + "/" + imageSize + ")")
+ }
+
+ override fun onPageScrollStateChanged(state: Int) {}
+ })
+ }
+
+ inner class BigImageAdapter(
+ private val context: Context, private val data: ArrayList
+ ) : PagerAdapter() {
+
+ override fun getCount(): Int = data.size
+
+ override fun isViewFromObject(view: View, any: Any): Boolean {
+ return view == any
+ }
+
+ override fun instantiateItem(container: ViewGroup, position: Int): Any {
+ val view = LayoutInflater.from(context).inflate(
+ R.layout.item_big_picture, container, false
+ )
+ val photoView: PhotoView = view.findViewById(R.id.photoView)
+ Glide.with(context).load(data[position]).into(photoView)
+ photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE
+ container.addView(view)
+ //点击大图取消预览
+ photoView.setOnClickListener { finish() }
+ return view
+ }
+
+ override fun destroyItem(container: ViewGroup, position: Int, any: Any) {
+ container.removeView(any as View)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
index f75e755..caf87cd 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
@@ -95,7 +95,13 @@
viewHolder: ViewHolder, position: Int,
item: CheckHistoryModel.DataModel.RowsModel
) {
- //TODO 数据未绑定
+ viewHolder.setText(
+ R.id.checkTimeView,
+ "${item.inspectionDate} ${item.startTime}-${item.endTime}"
+ )
+ .setText(R.id.checkSiteView, item.inspectionAddress)
+ .setText(R.id.troubleCountView, item.alarmCount)
+ .setText(R.id.checkPersonView, item.inspectionUser)
}
}
binding.recyclerView.adapter = checkHistoryAdapter
diff --git a/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
index f1704d0..fec55b7 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
@@ -1,9 +1,12 @@
package com.casic.br.app.view
import android.os.Bundle
+import android.widget.AdapterView
+import android.widget.GridView
import androidx.lifecycle.ViewModelProvider
import com.casic.br.app.R
import com.casic.br.app.databinding.ActivityCheckHistoryDetailBinding
+import com.casic.br.app.extensions.combineFilePath
import com.casic.br.app.extensions.initImmersionBar
import com.casic.br.app.model.CheckHistoryDetailModel
import com.casic.br.app.model.CheckHistoryModel
@@ -11,10 +14,12 @@
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets
import com.pengxh.kt.lite.extensions.dp2px
+import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.LoadState
@@ -62,13 +67,17 @@
R.id.troubleTypeView, "${item.mainClassName}-${item.subClassName}"
).setText(R.id.troubleNameView, item.name)
.setText(R.id.troubleContentView, item.content)
-// val gridView = viewHolder.getView(R.id.troubleImageView)
-// val imageAdapter = ReadOnlyImageAdapter(context, item.imageList)
-// gridView.adapter = imageAdapter
-// gridView.onItemClickListener =
-// AdapterView.OnItemClickListener { adapterView, view, position, l ->
-//
-// }
+ val gridView = viewHolder.getView(R.id.troubleImageView)
+ val images = ArrayList()
+ item.imageList.forEach { imageModel ->
+ images.add(imageModel.alarmImage.combineFilePath())
+ }
+ val imageAdapter = ReadOnlyImageAdapter(context, images)
+ gridView.adapter = imageAdapter
+ gridView.onItemClickListener =
+ AdapterView.OnItemClickListener { _, _, index, _ ->
+ navigatePageTo(index, images)
+ }
}
}
binding.recyclerView.adapter = detailAdapter
diff --git a/app/src/main/res/anim/activity_in.xml b/app/src/main/res/anim/activity_in.xml
new file mode 100644
index 0000000..f2696ba
--- /dev/null
+++ b/app/src/main/res/anim/activity_in.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/anim/activity_out.xml b/app/src/main/res/anim/activity_out.xml
new file mode 100644
index 0000000..1e424a5
--- /dev/null
+++ b/app/src/main/res/anim/activity_out.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index db128b4..af9b29a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -98,4 +98,8 @@
implementation "androidx.camera:camera-view:$camerax_version"
//PDF预览
implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'
+ //图片加载框架
+ implementation 'com.github.bumptech.glide:glide:4.9.0'
+ //图片选择框架
+ implementation 'io.github.lucksiege:pictureselector:v3.11.1'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 544ae3b..72f9448 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -65,6 +65,10 @@
+
+
diff --git a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
index bb21b14..63ed382 100644
--- a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
@@ -46,7 +46,7 @@
private String basis;
private String content;
private String id;
- private String imageList;
+ private List imageList;
private String inspectionId;
private String mainClass;
private String mainClassName;
@@ -88,11 +88,11 @@
this.id = id;
}
- public String getImageList() {
+ public List getImageList() {
return imageList;
}
- public void setImageList(String imageList) {
+ public void setImageList(List imageList) {
this.imageList = imageList;
}
@@ -159,5 +159,35 @@
public void setSubClassName(String subClassName) {
this.subClassName = subClassName;
}
+
+ public static class ImageListModel {
+ private String alarmImage;
+ private String id;
+ private String inspectionAlarmId;
+
+ public String getAlarmImage() {
+ return alarmImage;
+ }
+
+ public void setAlarmImage(String alarmImage) {
+ this.alarmImage = alarmImage;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getInspectionAlarmId() {
+ return inspectionAlarmId;
+ }
+
+ public void setInspectionAlarmId(String inspectionAlarmId) {
+ this.inspectionAlarmId = inspectionAlarmId;
+ }
+ }
}
}
diff --git a/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt b/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt
new file mode 100644
index 0000000..03826c5
--- /dev/null
+++ b/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt
@@ -0,0 +1,89 @@
+package com.casic.br.app.view
+
+import android.content.Context
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import androidx.viewpager.widget.PagerAdapter
+import androidx.viewpager.widget.ViewPager
+import com.bumptech.glide.Glide
+import com.casic.br.app.R
+import com.casic.br.app.databinding.ActivityBigImageBinding
+import com.casic.br.app.extensions.initImmersionBar
+import com.luck.picture.lib.photoview.PhotoView
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+
+class BigImageActivity : KotlinBaseActivity() {
+ override fun initViewBinding(): ActivityBigImageBinding {
+ return ActivityBigImageBinding.inflate(layoutInflater)
+ }
+
+ override fun setupTopBarLayout() {
+ binding.rootView.initImmersionBar(this, false, R.color.black)
+ binding.leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0)
+ val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY)
+ if (urls == null || urls.size == 0) {
+ return
+ }
+ val imageSize = urls.size
+ binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
+ binding.imagePagerView.adapter = BigImageAdapter(this, urls)
+ binding.imagePagerView.currentItem = index
+ binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+ override fun onPageScrolled(
+ position: Int, positionOffset: Float, positionOffsetPixels: Int
+ ) {
+ }
+
+ override fun onPageSelected(position: Int) {
+ binding.pageNumberView.text =
+ String.format("(" + (position + 1) + "/" + imageSize + ")")
+ }
+
+ override fun onPageScrollStateChanged(state: Int) {}
+ })
+ }
+
+ inner class BigImageAdapter(
+ private val context: Context, private val data: ArrayList
+ ) : PagerAdapter() {
+
+ override fun getCount(): Int = data.size
+
+ override fun isViewFromObject(view: View, any: Any): Boolean {
+ return view == any
+ }
+
+ override fun instantiateItem(container: ViewGroup, position: Int): Any {
+ val view = LayoutInflater.from(context).inflate(
+ R.layout.item_big_picture, container, false
+ )
+ val photoView: PhotoView = view.findViewById(R.id.photoView)
+ Glide.with(context).load(data[position]).into(photoView)
+ photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE
+ container.addView(view)
+ //点击大图取消预览
+ photoView.setOnClickListener { finish() }
+ return view
+ }
+
+ override fun destroyItem(container: ViewGroup, position: Int, any: Any) {
+ container.removeView(any as View)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
index f75e755..caf87cd 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
@@ -95,7 +95,13 @@
viewHolder: ViewHolder, position: Int,
item: CheckHistoryModel.DataModel.RowsModel
) {
- //TODO 数据未绑定
+ viewHolder.setText(
+ R.id.checkTimeView,
+ "${item.inspectionDate} ${item.startTime}-${item.endTime}"
+ )
+ .setText(R.id.checkSiteView, item.inspectionAddress)
+ .setText(R.id.troubleCountView, item.alarmCount)
+ .setText(R.id.checkPersonView, item.inspectionUser)
}
}
binding.recyclerView.adapter = checkHistoryAdapter
diff --git a/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
index f1704d0..fec55b7 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
@@ -1,9 +1,12 @@
package com.casic.br.app.view
import android.os.Bundle
+import android.widget.AdapterView
+import android.widget.GridView
import androidx.lifecycle.ViewModelProvider
import com.casic.br.app.R
import com.casic.br.app.databinding.ActivityCheckHistoryDetailBinding
+import com.casic.br.app.extensions.combineFilePath
import com.casic.br.app.extensions.initImmersionBar
import com.casic.br.app.model.CheckHistoryDetailModel
import com.casic.br.app.model.CheckHistoryModel
@@ -11,10 +14,12 @@
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets
import com.pengxh.kt.lite.extensions.dp2px
+import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.LoadState
@@ -62,13 +67,17 @@
R.id.troubleTypeView, "${item.mainClassName}-${item.subClassName}"
).setText(R.id.troubleNameView, item.name)
.setText(R.id.troubleContentView, item.content)
-// val gridView = viewHolder.getView(R.id.troubleImageView)
-// val imageAdapter = ReadOnlyImageAdapter(context, item.imageList)
-// gridView.adapter = imageAdapter
-// gridView.onItemClickListener =
-// AdapterView.OnItemClickListener { adapterView, view, position, l ->
-//
-// }
+ val gridView = viewHolder.getView(R.id.troubleImageView)
+ val images = ArrayList()
+ item.imageList.forEach { imageModel ->
+ images.add(imageModel.alarmImage.combineFilePath())
+ }
+ val imageAdapter = ReadOnlyImageAdapter(context, images)
+ gridView.adapter = imageAdapter
+ gridView.onItemClickListener =
+ AdapterView.OnItemClickListener { _, _, index, _ ->
+ navigatePageTo(index, images)
+ }
}
}
binding.recyclerView.adapter = detailAdapter
diff --git a/app/src/main/res/anim/activity_in.xml b/app/src/main/res/anim/activity_in.xml
new file mode 100644
index 0000000..f2696ba
--- /dev/null
+++ b/app/src/main/res/anim/activity_in.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/anim/activity_out.xml b/app/src/main/res/anim/activity_out.xml
new file mode 100644
index 0000000..1e424a5
--- /dev/null
+++ b/app/src/main/res/anim/activity_out.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
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..b0b948c
--- /dev/null
+++ b/app/src/main/res/layout/activity_big_image.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index db128b4..af9b29a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -98,4 +98,8 @@
implementation "androidx.camera:camera-view:$camerax_version"
//PDF预览
implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'
+ //图片加载框架
+ implementation 'com.github.bumptech.glide:glide:4.9.0'
+ //图片选择框架
+ implementation 'io.github.lucksiege:pictureselector:v3.11.1'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 544ae3b..72f9448 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -65,6 +65,10 @@
+
+
diff --git a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
index bb21b14..63ed382 100644
--- a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
@@ -46,7 +46,7 @@
private String basis;
private String content;
private String id;
- private String imageList;
+ private List imageList;
private String inspectionId;
private String mainClass;
private String mainClassName;
@@ -88,11 +88,11 @@
this.id = id;
}
- public String getImageList() {
+ public List getImageList() {
return imageList;
}
- public void setImageList(String imageList) {
+ public void setImageList(List imageList) {
this.imageList = imageList;
}
@@ -159,5 +159,35 @@
public void setSubClassName(String subClassName) {
this.subClassName = subClassName;
}
+
+ public static class ImageListModel {
+ private String alarmImage;
+ private String id;
+ private String inspectionAlarmId;
+
+ public String getAlarmImage() {
+ return alarmImage;
+ }
+
+ public void setAlarmImage(String alarmImage) {
+ this.alarmImage = alarmImage;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getInspectionAlarmId() {
+ return inspectionAlarmId;
+ }
+
+ public void setInspectionAlarmId(String inspectionAlarmId) {
+ this.inspectionAlarmId = inspectionAlarmId;
+ }
+ }
}
}
diff --git a/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt b/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt
new file mode 100644
index 0000000..03826c5
--- /dev/null
+++ b/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt
@@ -0,0 +1,89 @@
+package com.casic.br.app.view
+
+import android.content.Context
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import androidx.viewpager.widget.PagerAdapter
+import androidx.viewpager.widget.ViewPager
+import com.bumptech.glide.Glide
+import com.casic.br.app.R
+import com.casic.br.app.databinding.ActivityBigImageBinding
+import com.casic.br.app.extensions.initImmersionBar
+import com.luck.picture.lib.photoview.PhotoView
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+
+class BigImageActivity : KotlinBaseActivity() {
+ override fun initViewBinding(): ActivityBigImageBinding {
+ return ActivityBigImageBinding.inflate(layoutInflater)
+ }
+
+ override fun setupTopBarLayout() {
+ binding.rootView.initImmersionBar(this, false, R.color.black)
+ binding.leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0)
+ val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY)
+ if (urls == null || urls.size == 0) {
+ return
+ }
+ val imageSize = urls.size
+ binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
+ binding.imagePagerView.adapter = BigImageAdapter(this, urls)
+ binding.imagePagerView.currentItem = index
+ binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+ override fun onPageScrolled(
+ position: Int, positionOffset: Float, positionOffsetPixels: Int
+ ) {
+ }
+
+ override fun onPageSelected(position: Int) {
+ binding.pageNumberView.text =
+ String.format("(" + (position + 1) + "/" + imageSize + ")")
+ }
+
+ override fun onPageScrollStateChanged(state: Int) {}
+ })
+ }
+
+ inner class BigImageAdapter(
+ private val context: Context, private val data: ArrayList
+ ) : PagerAdapter() {
+
+ override fun getCount(): Int = data.size
+
+ override fun isViewFromObject(view: View, any: Any): Boolean {
+ return view == any
+ }
+
+ override fun instantiateItem(container: ViewGroup, position: Int): Any {
+ val view = LayoutInflater.from(context).inflate(
+ R.layout.item_big_picture, container, false
+ )
+ val photoView: PhotoView = view.findViewById(R.id.photoView)
+ Glide.with(context).load(data[position]).into(photoView)
+ photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE
+ container.addView(view)
+ //点击大图取消预览
+ photoView.setOnClickListener { finish() }
+ return view
+ }
+
+ override fun destroyItem(container: ViewGroup, position: Int, any: Any) {
+ container.removeView(any as View)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
index f75e755..caf87cd 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
@@ -95,7 +95,13 @@
viewHolder: ViewHolder, position: Int,
item: CheckHistoryModel.DataModel.RowsModel
) {
- //TODO 数据未绑定
+ viewHolder.setText(
+ R.id.checkTimeView,
+ "${item.inspectionDate} ${item.startTime}-${item.endTime}"
+ )
+ .setText(R.id.checkSiteView, item.inspectionAddress)
+ .setText(R.id.troubleCountView, item.alarmCount)
+ .setText(R.id.checkPersonView, item.inspectionUser)
}
}
binding.recyclerView.adapter = checkHistoryAdapter
diff --git a/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
index f1704d0..fec55b7 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
@@ -1,9 +1,12 @@
package com.casic.br.app.view
import android.os.Bundle
+import android.widget.AdapterView
+import android.widget.GridView
import androidx.lifecycle.ViewModelProvider
import com.casic.br.app.R
import com.casic.br.app.databinding.ActivityCheckHistoryDetailBinding
+import com.casic.br.app.extensions.combineFilePath
import com.casic.br.app.extensions.initImmersionBar
import com.casic.br.app.model.CheckHistoryDetailModel
import com.casic.br.app.model.CheckHistoryModel
@@ -11,10 +14,12 @@
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets
import com.pengxh.kt.lite.extensions.dp2px
+import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.LoadState
@@ -62,13 +67,17 @@
R.id.troubleTypeView, "${item.mainClassName}-${item.subClassName}"
).setText(R.id.troubleNameView, item.name)
.setText(R.id.troubleContentView, item.content)
-// val gridView = viewHolder.getView(R.id.troubleImageView)
-// val imageAdapter = ReadOnlyImageAdapter(context, item.imageList)
-// gridView.adapter = imageAdapter
-// gridView.onItemClickListener =
-// AdapterView.OnItemClickListener { adapterView, view, position, l ->
-//
-// }
+ val gridView = viewHolder.getView(R.id.troubleImageView)
+ val images = ArrayList()
+ item.imageList.forEach { imageModel ->
+ images.add(imageModel.alarmImage.combineFilePath())
+ }
+ val imageAdapter = ReadOnlyImageAdapter(context, images)
+ gridView.adapter = imageAdapter
+ gridView.onItemClickListener =
+ AdapterView.OnItemClickListener { _, _, index, _ ->
+ navigatePageTo(index, images)
+ }
}
}
binding.recyclerView.adapter = detailAdapter
diff --git a/app/src/main/res/anim/activity_in.xml b/app/src/main/res/anim/activity_in.xml
new file mode 100644
index 0000000..f2696ba
--- /dev/null
+++ b/app/src/main/res/anim/activity_in.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/anim/activity_out.xml b/app/src/main/res/anim/activity_out.xml
new file mode 100644
index 0000000..1e424a5
--- /dev/null
+++ b/app/src/main/res/anim/activity_out.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
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..b0b948c
--- /dev/null
+++ b/app/src/main/res/layout/activity_big_image.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_check_history_detail.xml b/app/src/main/res/layout/activity_check_history_detail.xml
index 66c14c7..9c1fe5f 100644
--- a/app/src/main/res/layout/activity_check_history_detail.xml
+++ b/app/src/main/res/layout/activity_check_history_detail.xml
@@ -100,7 +100,7 @@
android:layout_marginHorizontal="@dimen/dp_10"
android:text="0"
android:textColor="@color/red"
- android:textSize="@dimen/sp_18"
+ android:textSize="@dimen/sp_16"
android:textStyle="bold" />
+
+
diff --git a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
index bb21b14..63ed382 100644
--- a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
@@ -46,7 +46,7 @@
private String basis;
private String content;
private String id;
- private String imageList;
+ private List imageList;
private String inspectionId;
private String mainClass;
private String mainClassName;
@@ -88,11 +88,11 @@
this.id = id;
}
- public String getImageList() {
+ public List getImageList() {
return imageList;
}
- public void setImageList(String imageList) {
+ public void setImageList(List imageList) {
this.imageList = imageList;
}
@@ -159,5 +159,35 @@
public void setSubClassName(String subClassName) {
this.subClassName = subClassName;
}
+
+ public static class ImageListModel {
+ private String alarmImage;
+ private String id;
+ private String inspectionAlarmId;
+
+ public String getAlarmImage() {
+ return alarmImage;
+ }
+
+ public void setAlarmImage(String alarmImage) {
+ this.alarmImage = alarmImage;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getInspectionAlarmId() {
+ return inspectionAlarmId;
+ }
+
+ public void setInspectionAlarmId(String inspectionAlarmId) {
+ this.inspectionAlarmId = inspectionAlarmId;
+ }
+ }
}
}
diff --git a/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt b/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt
new file mode 100644
index 0000000..03826c5
--- /dev/null
+++ b/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt
@@ -0,0 +1,89 @@
+package com.casic.br.app.view
+
+import android.content.Context
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import androidx.viewpager.widget.PagerAdapter
+import androidx.viewpager.widget.ViewPager
+import com.bumptech.glide.Glide
+import com.casic.br.app.R
+import com.casic.br.app.databinding.ActivityBigImageBinding
+import com.casic.br.app.extensions.initImmersionBar
+import com.luck.picture.lib.photoview.PhotoView
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+
+class BigImageActivity : KotlinBaseActivity() {
+ override fun initViewBinding(): ActivityBigImageBinding {
+ return ActivityBigImageBinding.inflate(layoutInflater)
+ }
+
+ override fun setupTopBarLayout() {
+ binding.rootView.initImmersionBar(this, false, R.color.black)
+ binding.leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0)
+ val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY)
+ if (urls == null || urls.size == 0) {
+ return
+ }
+ val imageSize = urls.size
+ binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
+ binding.imagePagerView.adapter = BigImageAdapter(this, urls)
+ binding.imagePagerView.currentItem = index
+ binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+ override fun onPageScrolled(
+ position: Int, positionOffset: Float, positionOffsetPixels: Int
+ ) {
+ }
+
+ override fun onPageSelected(position: Int) {
+ binding.pageNumberView.text =
+ String.format("(" + (position + 1) + "/" + imageSize + ")")
+ }
+
+ override fun onPageScrollStateChanged(state: Int) {}
+ })
+ }
+
+ inner class BigImageAdapter(
+ private val context: Context, private val data: ArrayList
+ ) : PagerAdapter() {
+
+ override fun getCount(): Int = data.size
+
+ override fun isViewFromObject(view: View, any: Any): Boolean {
+ return view == any
+ }
+
+ override fun instantiateItem(container: ViewGroup, position: Int): Any {
+ val view = LayoutInflater.from(context).inflate(
+ R.layout.item_big_picture, container, false
+ )
+ val photoView: PhotoView = view.findViewById(R.id.photoView)
+ Glide.with(context).load(data[position]).into(photoView)
+ photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE
+ container.addView(view)
+ //点击大图取消预览
+ photoView.setOnClickListener { finish() }
+ return view
+ }
+
+ override fun destroyItem(container: ViewGroup, position: Int, any: Any) {
+ container.removeView(any as View)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
index f75e755..caf87cd 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
@@ -95,7 +95,13 @@
viewHolder: ViewHolder, position: Int,
item: CheckHistoryModel.DataModel.RowsModel
) {
- //TODO 数据未绑定
+ viewHolder.setText(
+ R.id.checkTimeView,
+ "${item.inspectionDate} ${item.startTime}-${item.endTime}"
+ )
+ .setText(R.id.checkSiteView, item.inspectionAddress)
+ .setText(R.id.troubleCountView, item.alarmCount)
+ .setText(R.id.checkPersonView, item.inspectionUser)
}
}
binding.recyclerView.adapter = checkHistoryAdapter
diff --git a/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
index f1704d0..fec55b7 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
@@ -1,9 +1,12 @@
package com.casic.br.app.view
import android.os.Bundle
+import android.widget.AdapterView
+import android.widget.GridView
import androidx.lifecycle.ViewModelProvider
import com.casic.br.app.R
import com.casic.br.app.databinding.ActivityCheckHistoryDetailBinding
+import com.casic.br.app.extensions.combineFilePath
import com.casic.br.app.extensions.initImmersionBar
import com.casic.br.app.model.CheckHistoryDetailModel
import com.casic.br.app.model.CheckHistoryModel
@@ -11,10 +14,12 @@
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets
import com.pengxh.kt.lite.extensions.dp2px
+import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.LoadState
@@ -62,13 +67,17 @@
R.id.troubleTypeView, "${item.mainClassName}-${item.subClassName}"
).setText(R.id.troubleNameView, item.name)
.setText(R.id.troubleContentView, item.content)
-// val gridView = viewHolder.getView(R.id.troubleImageView)
-// val imageAdapter = ReadOnlyImageAdapter(context, item.imageList)
-// gridView.adapter = imageAdapter
-// gridView.onItemClickListener =
-// AdapterView.OnItemClickListener { adapterView, view, position, l ->
-//
-// }
+ val gridView = viewHolder.getView(R.id.troubleImageView)
+ val images = ArrayList()
+ item.imageList.forEach { imageModel ->
+ images.add(imageModel.alarmImage.combineFilePath())
+ }
+ val imageAdapter = ReadOnlyImageAdapter(context, images)
+ gridView.adapter = imageAdapter
+ gridView.onItemClickListener =
+ AdapterView.OnItemClickListener { _, _, index, _ ->
+ navigatePageTo(index, images)
+ }
}
}
binding.recyclerView.adapter = detailAdapter
diff --git a/app/src/main/res/anim/activity_in.xml b/app/src/main/res/anim/activity_in.xml
new file mode 100644
index 0000000..f2696ba
--- /dev/null
+++ b/app/src/main/res/anim/activity_in.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/anim/activity_out.xml b/app/src/main/res/anim/activity_out.xml
new file mode 100644
index 0000000..1e424a5
--- /dev/null
+++ b/app/src/main/res/anim/activity_out.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
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..b0b948c
--- /dev/null
+++ b/app/src/main/res/layout/activity_big_image.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_check_history_detail.xml b/app/src/main/res/layout/activity_check_history_detail.xml
index 66c14c7..9c1fe5f 100644
--- a/app/src/main/res/layout/activity_check_history_detail.xml
+++ b/app/src/main/res/layout/activity_check_history_detail.xml
@@ -100,7 +100,7 @@
android:layout_marginHorizontal="@dimen/dp_10"
android:text="0"
android:textColor="@color/red"
- android:textSize="@dimen/sp_18"
+ android:textSize="@dimen/sp_16"
android:textStyle="bold" />
+
+
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index db128b4..af9b29a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -98,4 +98,8 @@
implementation "androidx.camera:camera-view:$camerax_version"
//PDF预览
implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'
+ //图片加载框架
+ implementation 'com.github.bumptech.glide:glide:4.9.0'
+ //图片选择框架
+ implementation 'io.github.lucksiege:pictureselector:v3.11.1'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 544ae3b..72f9448 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -65,6 +65,10 @@
+
+
diff --git a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
index bb21b14..63ed382 100644
--- a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
@@ -46,7 +46,7 @@
private String basis;
private String content;
private String id;
- private String imageList;
+ private List imageList;
private String inspectionId;
private String mainClass;
private String mainClassName;
@@ -88,11 +88,11 @@
this.id = id;
}
- public String getImageList() {
+ public List getImageList() {
return imageList;
}
- public void setImageList(String imageList) {
+ public void setImageList(List imageList) {
this.imageList = imageList;
}
@@ -159,5 +159,35 @@
public void setSubClassName(String subClassName) {
this.subClassName = subClassName;
}
+
+ public static class ImageListModel {
+ private String alarmImage;
+ private String id;
+ private String inspectionAlarmId;
+
+ public String getAlarmImage() {
+ return alarmImage;
+ }
+
+ public void setAlarmImage(String alarmImage) {
+ this.alarmImage = alarmImage;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getInspectionAlarmId() {
+ return inspectionAlarmId;
+ }
+
+ public void setInspectionAlarmId(String inspectionAlarmId) {
+ this.inspectionAlarmId = inspectionAlarmId;
+ }
+ }
}
}
diff --git a/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt b/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt
new file mode 100644
index 0000000..03826c5
--- /dev/null
+++ b/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt
@@ -0,0 +1,89 @@
+package com.casic.br.app.view
+
+import android.content.Context
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import androidx.viewpager.widget.PagerAdapter
+import androidx.viewpager.widget.ViewPager
+import com.bumptech.glide.Glide
+import com.casic.br.app.R
+import com.casic.br.app.databinding.ActivityBigImageBinding
+import com.casic.br.app.extensions.initImmersionBar
+import com.luck.picture.lib.photoview.PhotoView
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+
+class BigImageActivity : KotlinBaseActivity() {
+ override fun initViewBinding(): ActivityBigImageBinding {
+ return ActivityBigImageBinding.inflate(layoutInflater)
+ }
+
+ override fun setupTopBarLayout() {
+ binding.rootView.initImmersionBar(this, false, R.color.black)
+ binding.leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0)
+ val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY)
+ if (urls == null || urls.size == 0) {
+ return
+ }
+ val imageSize = urls.size
+ binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
+ binding.imagePagerView.adapter = BigImageAdapter(this, urls)
+ binding.imagePagerView.currentItem = index
+ binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+ override fun onPageScrolled(
+ position: Int, positionOffset: Float, positionOffsetPixels: Int
+ ) {
+ }
+
+ override fun onPageSelected(position: Int) {
+ binding.pageNumberView.text =
+ String.format("(" + (position + 1) + "/" + imageSize + ")")
+ }
+
+ override fun onPageScrollStateChanged(state: Int) {}
+ })
+ }
+
+ inner class BigImageAdapter(
+ private val context: Context, private val data: ArrayList
+ ) : PagerAdapter() {
+
+ override fun getCount(): Int = data.size
+
+ override fun isViewFromObject(view: View, any: Any): Boolean {
+ return view == any
+ }
+
+ override fun instantiateItem(container: ViewGroup, position: Int): Any {
+ val view = LayoutInflater.from(context).inflate(
+ R.layout.item_big_picture, container, false
+ )
+ val photoView: PhotoView = view.findViewById(R.id.photoView)
+ Glide.with(context).load(data[position]).into(photoView)
+ photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE
+ container.addView(view)
+ //点击大图取消预览
+ photoView.setOnClickListener { finish() }
+ return view
+ }
+
+ override fun destroyItem(container: ViewGroup, position: Int, any: Any) {
+ container.removeView(any as View)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
index f75e755..caf87cd 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
@@ -95,7 +95,13 @@
viewHolder: ViewHolder, position: Int,
item: CheckHistoryModel.DataModel.RowsModel
) {
- //TODO 数据未绑定
+ viewHolder.setText(
+ R.id.checkTimeView,
+ "${item.inspectionDate} ${item.startTime}-${item.endTime}"
+ )
+ .setText(R.id.checkSiteView, item.inspectionAddress)
+ .setText(R.id.troubleCountView, item.alarmCount)
+ .setText(R.id.checkPersonView, item.inspectionUser)
}
}
binding.recyclerView.adapter = checkHistoryAdapter
diff --git a/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
index f1704d0..fec55b7 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
@@ -1,9 +1,12 @@
package com.casic.br.app.view
import android.os.Bundle
+import android.widget.AdapterView
+import android.widget.GridView
import androidx.lifecycle.ViewModelProvider
import com.casic.br.app.R
import com.casic.br.app.databinding.ActivityCheckHistoryDetailBinding
+import com.casic.br.app.extensions.combineFilePath
import com.casic.br.app.extensions.initImmersionBar
import com.casic.br.app.model.CheckHistoryDetailModel
import com.casic.br.app.model.CheckHistoryModel
@@ -11,10 +14,12 @@
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets
import com.pengxh.kt.lite.extensions.dp2px
+import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.LoadState
@@ -62,13 +67,17 @@
R.id.troubleTypeView, "${item.mainClassName}-${item.subClassName}"
).setText(R.id.troubleNameView, item.name)
.setText(R.id.troubleContentView, item.content)
-// val gridView = viewHolder.getView(R.id.troubleImageView)
-// val imageAdapter = ReadOnlyImageAdapter(context, item.imageList)
-// gridView.adapter = imageAdapter
-// gridView.onItemClickListener =
-// AdapterView.OnItemClickListener { adapterView, view, position, l ->
-//
-// }
+ val gridView = viewHolder.getView(R.id.troubleImageView)
+ val images = ArrayList()
+ item.imageList.forEach { imageModel ->
+ images.add(imageModel.alarmImage.combineFilePath())
+ }
+ val imageAdapter = ReadOnlyImageAdapter(context, images)
+ gridView.adapter = imageAdapter
+ gridView.onItemClickListener =
+ AdapterView.OnItemClickListener { _, _, index, _ ->
+ navigatePageTo(index, images)
+ }
}
}
binding.recyclerView.adapter = detailAdapter
diff --git a/app/src/main/res/anim/activity_in.xml b/app/src/main/res/anim/activity_in.xml
new file mode 100644
index 0000000..f2696ba
--- /dev/null
+++ b/app/src/main/res/anim/activity_in.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/anim/activity_out.xml b/app/src/main/res/anim/activity_out.xml
new file mode 100644
index 0000000..1e424a5
--- /dev/null
+++ b/app/src/main/res/anim/activity_out.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
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..b0b948c
--- /dev/null
+++ b/app/src/main/res/layout/activity_big_image.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_check_history_detail.xml b/app/src/main/res/layout/activity_check_history_detail.xml
index 66c14c7..9c1fe5f 100644
--- a/app/src/main/res/layout/activity_check_history_detail.xml
+++ b/app/src/main/res/layout/activity_check_history_detail.xml
@@ -100,7 +100,7 @@
android:layout_marginHorizontal="@dimen/dp_10"
android:text="0"
android:textColor="@color/red"
- android:textSize="@dimen/sp_18"
+ android:textSize="@dimen/sp_16"
android:textStyle="bold" />
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_check_history.xml b/app/src/main/res/layout/item_check_history.xml
index 4b42aa4..ff1aefd 100644
--- a/app/src/main/res/layout/item_check_history.xml
+++ b/app/src/main/res/layout/item_check_history.xml
@@ -78,7 +78,7 @@
android:layout_marginHorizontal="@dimen/dp_10"
android:text="4"
android:textColor="@color/red"
- android:textSize="@dimen/sp_18"
+ android:textSize="@dimen/sp_16"
android:textStyle="bold" />
+
+
diff --git a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
index bb21b14..63ed382 100644
--- a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
@@ -46,7 +46,7 @@
private String basis;
private String content;
private String id;
- private String imageList;
+ private List imageList;
private String inspectionId;
private String mainClass;
private String mainClassName;
@@ -88,11 +88,11 @@
this.id = id;
}
- public String getImageList() {
+ public List getImageList() {
return imageList;
}
- public void setImageList(String imageList) {
+ public void setImageList(List imageList) {
this.imageList = imageList;
}
@@ -159,5 +159,35 @@
public void setSubClassName(String subClassName) {
this.subClassName = subClassName;
}
+
+ public static class ImageListModel {
+ private String alarmImage;
+ private String id;
+ private String inspectionAlarmId;
+
+ public String getAlarmImage() {
+ return alarmImage;
+ }
+
+ public void setAlarmImage(String alarmImage) {
+ this.alarmImage = alarmImage;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getInspectionAlarmId() {
+ return inspectionAlarmId;
+ }
+
+ public void setInspectionAlarmId(String inspectionAlarmId) {
+ this.inspectionAlarmId = inspectionAlarmId;
+ }
+ }
}
}
diff --git a/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt b/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt
new file mode 100644
index 0000000..03826c5
--- /dev/null
+++ b/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt
@@ -0,0 +1,89 @@
+package com.casic.br.app.view
+
+import android.content.Context
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import androidx.viewpager.widget.PagerAdapter
+import androidx.viewpager.widget.ViewPager
+import com.bumptech.glide.Glide
+import com.casic.br.app.R
+import com.casic.br.app.databinding.ActivityBigImageBinding
+import com.casic.br.app.extensions.initImmersionBar
+import com.luck.picture.lib.photoview.PhotoView
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+
+class BigImageActivity : KotlinBaseActivity() {
+ override fun initViewBinding(): ActivityBigImageBinding {
+ return ActivityBigImageBinding.inflate(layoutInflater)
+ }
+
+ override fun setupTopBarLayout() {
+ binding.rootView.initImmersionBar(this, false, R.color.black)
+ binding.leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0)
+ val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY)
+ if (urls == null || urls.size == 0) {
+ return
+ }
+ val imageSize = urls.size
+ binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
+ binding.imagePagerView.adapter = BigImageAdapter(this, urls)
+ binding.imagePagerView.currentItem = index
+ binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+ override fun onPageScrolled(
+ position: Int, positionOffset: Float, positionOffsetPixels: Int
+ ) {
+ }
+
+ override fun onPageSelected(position: Int) {
+ binding.pageNumberView.text =
+ String.format("(" + (position + 1) + "/" + imageSize + ")")
+ }
+
+ override fun onPageScrollStateChanged(state: Int) {}
+ })
+ }
+
+ inner class BigImageAdapter(
+ private val context: Context, private val data: ArrayList
+ ) : PagerAdapter() {
+
+ override fun getCount(): Int = data.size
+
+ override fun isViewFromObject(view: View, any: Any): Boolean {
+ return view == any
+ }
+
+ override fun instantiateItem(container: ViewGroup, position: Int): Any {
+ val view = LayoutInflater.from(context).inflate(
+ R.layout.item_big_picture, container, false
+ )
+ val photoView: PhotoView = view.findViewById(R.id.photoView)
+ Glide.with(context).load(data[position]).into(photoView)
+ photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE
+ container.addView(view)
+ //点击大图取消预览
+ photoView.setOnClickListener { finish() }
+ return view
+ }
+
+ override fun destroyItem(container: ViewGroup, position: Int, any: Any) {
+ container.removeView(any as View)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
index f75e755..caf87cd 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
@@ -95,7 +95,13 @@
viewHolder: ViewHolder, position: Int,
item: CheckHistoryModel.DataModel.RowsModel
) {
- //TODO 数据未绑定
+ viewHolder.setText(
+ R.id.checkTimeView,
+ "${item.inspectionDate} ${item.startTime}-${item.endTime}"
+ )
+ .setText(R.id.checkSiteView, item.inspectionAddress)
+ .setText(R.id.troubleCountView, item.alarmCount)
+ .setText(R.id.checkPersonView, item.inspectionUser)
}
}
binding.recyclerView.adapter = checkHistoryAdapter
diff --git a/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
index f1704d0..fec55b7 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
@@ -1,9 +1,12 @@
package com.casic.br.app.view
import android.os.Bundle
+import android.widget.AdapterView
+import android.widget.GridView
import androidx.lifecycle.ViewModelProvider
import com.casic.br.app.R
import com.casic.br.app.databinding.ActivityCheckHistoryDetailBinding
+import com.casic.br.app.extensions.combineFilePath
import com.casic.br.app.extensions.initImmersionBar
import com.casic.br.app.model.CheckHistoryDetailModel
import com.casic.br.app.model.CheckHistoryModel
@@ -11,10 +14,12 @@
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets
import com.pengxh.kt.lite.extensions.dp2px
+import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.LoadState
@@ -62,13 +67,17 @@
R.id.troubleTypeView, "${item.mainClassName}-${item.subClassName}"
).setText(R.id.troubleNameView, item.name)
.setText(R.id.troubleContentView, item.content)
-// val gridView = viewHolder.getView(R.id.troubleImageView)
-// val imageAdapter = ReadOnlyImageAdapter(context, item.imageList)
-// gridView.adapter = imageAdapter
-// gridView.onItemClickListener =
-// AdapterView.OnItemClickListener { adapterView, view, position, l ->
-//
-// }
+ val gridView = viewHolder.getView(R.id.troubleImageView)
+ val images = ArrayList()
+ item.imageList.forEach { imageModel ->
+ images.add(imageModel.alarmImage.combineFilePath())
+ }
+ val imageAdapter = ReadOnlyImageAdapter(context, images)
+ gridView.adapter = imageAdapter
+ gridView.onItemClickListener =
+ AdapterView.OnItemClickListener { _, _, index, _ ->
+ navigatePageTo(index, images)
+ }
}
}
binding.recyclerView.adapter = detailAdapter
diff --git a/app/src/main/res/anim/activity_in.xml b/app/src/main/res/anim/activity_in.xml
new file mode 100644
index 0000000..f2696ba
--- /dev/null
+++ b/app/src/main/res/anim/activity_in.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/anim/activity_out.xml b/app/src/main/res/anim/activity_out.xml
new file mode 100644
index 0000000..1e424a5
--- /dev/null
+++ b/app/src/main/res/anim/activity_out.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
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..b0b948c
--- /dev/null
+++ b/app/src/main/res/layout/activity_big_image.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_check_history_detail.xml b/app/src/main/res/layout/activity_check_history_detail.xml
index 66c14c7..9c1fe5f 100644
--- a/app/src/main/res/layout/activity_check_history_detail.xml
+++ b/app/src/main/res/layout/activity_check_history_detail.xml
@@ -100,7 +100,7 @@
android:layout_marginHorizontal="@dimen/dp_10"
android:text="0"
android:textColor="@color/red"
- android:textSize="@dimen/sp_18"
+ android:textSize="@dimen/sp_16"
android:textStyle="bold" />
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_check_history.xml b/app/src/main/res/layout/item_check_history.xml
index 4b42aa4..ff1aefd 100644
--- a/app/src/main/res/layout/item_check_history.xml
+++ b/app/src/main/res/layout/item_check_history.xml
@@ -78,7 +78,7 @@
android:layout_marginHorizontal="@dimen/dp_10"
android:text="4"
android:textColor="@color/red"
- android:textSize="@dimen/sp_18"
+ android:textSize="@dimen/sp_16"
android:textStyle="bold" />
@dimen/sp_18
- @drawable/button_main_selector
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index db128b4..af9b29a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -98,4 +98,8 @@
implementation "androidx.camera:camera-view:$camerax_version"
//PDF预览
implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'
+ //图片加载框架
+ implementation 'com.github.bumptech.glide:glide:4.9.0'
+ //图片选择框架
+ implementation 'io.github.lucksiege:pictureselector:v3.11.1'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 544ae3b..72f9448 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -65,6 +65,10 @@
+
+
diff --git a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
index bb21b14..63ed382 100644
--- a/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/CheckHistoryDetailModel.java
@@ -46,7 +46,7 @@
private String basis;
private String content;
private String id;
- private String imageList;
+ private List imageList;
private String inspectionId;
private String mainClass;
private String mainClassName;
@@ -88,11 +88,11 @@
this.id = id;
}
- public String getImageList() {
+ public List getImageList() {
return imageList;
}
- public void setImageList(String imageList) {
+ public void setImageList(List imageList) {
this.imageList = imageList;
}
@@ -159,5 +159,35 @@
public void setSubClassName(String subClassName) {
this.subClassName = subClassName;
}
+
+ public static class ImageListModel {
+ private String alarmImage;
+ private String id;
+ private String inspectionAlarmId;
+
+ public String getAlarmImage() {
+ return alarmImage;
+ }
+
+ public void setAlarmImage(String alarmImage) {
+ this.alarmImage = alarmImage;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getInspectionAlarmId() {
+ return inspectionAlarmId;
+ }
+
+ public void setInspectionAlarmId(String inspectionAlarmId) {
+ this.inspectionAlarmId = inspectionAlarmId;
+ }
+ }
}
}
diff --git a/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt b/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt
new file mode 100644
index 0000000..03826c5
--- /dev/null
+++ b/app/src/main/java/com/casic/br/app/view/BigImageActivity.kt
@@ -0,0 +1,89 @@
+package com.casic.br.app.view
+
+import android.content.Context
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import androidx.viewpager.widget.PagerAdapter
+import androidx.viewpager.widget.ViewPager
+import com.bumptech.glide.Glide
+import com.casic.br.app.R
+import com.casic.br.app.databinding.ActivityBigImageBinding
+import com.casic.br.app.extensions.initImmersionBar
+import com.luck.picture.lib.photoview.PhotoView
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+
+class BigImageActivity : KotlinBaseActivity() {
+ override fun initViewBinding(): ActivityBigImageBinding {
+ return ActivityBigImageBinding.inflate(layoutInflater)
+ }
+
+ override fun setupTopBarLayout() {
+ binding.rootView.initImmersionBar(this, false, R.color.black)
+ binding.leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0)
+ val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY)
+ if (urls == null || urls.size == 0) {
+ return
+ }
+ val imageSize = urls.size
+ binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")")
+ binding.imagePagerView.adapter = BigImageAdapter(this, urls)
+ binding.imagePagerView.currentItem = index
+ binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+ override fun onPageScrolled(
+ position: Int, positionOffset: Float, positionOffsetPixels: Int
+ ) {
+ }
+
+ override fun onPageSelected(position: Int) {
+ binding.pageNumberView.text =
+ String.format("(" + (position + 1) + "/" + imageSize + ")")
+ }
+
+ override fun onPageScrollStateChanged(state: Int) {}
+ })
+ }
+
+ inner class BigImageAdapter(
+ private val context: Context, private val data: ArrayList
+ ) : PagerAdapter() {
+
+ override fun getCount(): Int = data.size
+
+ override fun isViewFromObject(view: View, any: Any): Boolean {
+ return view == any
+ }
+
+ override fun instantiateItem(container: ViewGroup, position: Int): Any {
+ val view = LayoutInflater.from(context).inflate(
+ R.layout.item_big_picture, container, false
+ )
+ val photoView: PhotoView = view.findViewById(R.id.photoView)
+ Glide.with(context).load(data[position]).into(photoView)
+ photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE
+ container.addView(view)
+ //点击大图取消预览
+ photoView.setOnClickListener { finish() }
+ return view
+ }
+
+ override fun destroyItem(container: ViewGroup, position: Int, any: Any) {
+ container.removeView(any as View)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
index f75e755..caf87cd 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckHistoryActivity.kt
@@ -95,7 +95,13 @@
viewHolder: ViewHolder, position: Int,
item: CheckHistoryModel.DataModel.RowsModel
) {
- //TODO 数据未绑定
+ viewHolder.setText(
+ R.id.checkTimeView,
+ "${item.inspectionDate} ${item.startTime}-${item.endTime}"
+ )
+ .setText(R.id.checkSiteView, item.inspectionAddress)
+ .setText(R.id.troubleCountView, item.alarmCount)
+ .setText(R.id.checkPersonView, item.inspectionUser)
}
}
binding.recyclerView.adapter = checkHistoryAdapter
diff --git a/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
index f1704d0..fec55b7 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckHistoryDetailActivity.kt
@@ -1,9 +1,12 @@
package com.casic.br.app.view
import android.os.Bundle
+import android.widget.AdapterView
+import android.widget.GridView
import androidx.lifecycle.ViewModelProvider
import com.casic.br.app.R
import com.casic.br.app.databinding.ActivityCheckHistoryDetailBinding
+import com.casic.br.app.extensions.combineFilePath
import com.casic.br.app.extensions.initImmersionBar
import com.casic.br.app.model.CheckHistoryDetailModel
import com.casic.br.app.model.CheckHistoryModel
@@ -11,10 +14,12 @@
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets
import com.pengxh.kt.lite.extensions.dp2px
+import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.LoadState
@@ -62,13 +67,17 @@
R.id.troubleTypeView, "${item.mainClassName}-${item.subClassName}"
).setText(R.id.troubleNameView, item.name)
.setText(R.id.troubleContentView, item.content)
-// val gridView = viewHolder.getView(R.id.troubleImageView)
-// val imageAdapter = ReadOnlyImageAdapter(context, item.imageList)
-// gridView.adapter = imageAdapter
-// gridView.onItemClickListener =
-// AdapterView.OnItemClickListener { adapterView, view, position, l ->
-//
-// }
+ val gridView = viewHolder.getView(R.id.troubleImageView)
+ val images = ArrayList()
+ item.imageList.forEach { imageModel ->
+ images.add(imageModel.alarmImage.combineFilePath())
+ }
+ val imageAdapter = ReadOnlyImageAdapter(context, images)
+ gridView.adapter = imageAdapter
+ gridView.onItemClickListener =
+ AdapterView.OnItemClickListener { _, _, index, _ ->
+ navigatePageTo(index, images)
+ }
}
}
binding.recyclerView.adapter = detailAdapter
diff --git a/app/src/main/res/anim/activity_in.xml b/app/src/main/res/anim/activity_in.xml
new file mode 100644
index 0000000..f2696ba
--- /dev/null
+++ b/app/src/main/res/anim/activity_in.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/anim/activity_out.xml b/app/src/main/res/anim/activity_out.xml
new file mode 100644
index 0000000..1e424a5
--- /dev/null
+++ b/app/src/main/res/anim/activity_out.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
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..b0b948c
--- /dev/null
+++ b/app/src/main/res/layout/activity_big_image.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_check_history_detail.xml b/app/src/main/res/layout/activity_check_history_detail.xml
index 66c14c7..9c1fe5f 100644
--- a/app/src/main/res/layout/activity_check_history_detail.xml
+++ b/app/src/main/res/layout/activity_check_history_detail.xml
@@ -100,7 +100,7 @@
android:layout_marginHorizontal="@dimen/dp_10"
android:text="0"
android:textColor="@color/red"
- android:textSize="@dimen/sp_18"
+ android:textSize="@dimen/sp_16"
android:textStyle="bold" />
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_check_history.xml b/app/src/main/res/layout/item_check_history.xml
index 4b42aa4..ff1aefd 100644
--- a/app/src/main/res/layout/item_check_history.xml
+++ b/app/src/main/res/layout/item_check_history.xml
@@ -78,7 +78,7 @@
android:layout_marginHorizontal="@dimen/dp_10"
android:text="4"
android:textColor="@color/red"
- android:textSize="@dimen/sp_18"
+ android:textSize="@dimen/sp_16"
android:textStyle="bold" />
@dimen/sp_18
- @drawable/button_main_selector
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index e0a4aed..201bfd9 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -4,4 +4,8 @@
+
+
\ No newline at end of file