diff --git a/app/build.gradle b/app/build.gradle index 04aa616..c9b11ec 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -77,7 +77,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' //Google官方授权框架 @@ -119,6 +119,8 @@ implementation 'com.github.bumptech.glide:glide:4.9.0' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' + //大图 + implementation 'com.github.chrisbanes:PhotoView:2.3.0' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //异常日志记录 diff --git a/app/build.gradle b/app/build.gradle index 04aa616..c9b11ec 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -77,7 +77,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' //Google官方授权框架 @@ -119,6 +119,8 @@ implementation 'com.github.bumptech.glide:glide:4.9.0' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' + //大图 + implementation 'com.github.chrisbanes:PhotoView:2.3.0' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //异常日志记录 diff --git a/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt index e4346a6..d01d91f 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.common.detector.gd.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 androidx.viewpager2.widget.ViewPager2 import com.casic.common.detector.gd.R import com.casic.common.detector.gd.databinding.ActivityBigImageBinding -import com.casic.common.detector.gd.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : KotlinBaseActivity() { @@ -23,33 +17,35 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { - val index = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.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.offscreenPageLimit = imageSize - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") } - - override fun onPageScrollStateChanged(state: Int) {} }) } @@ -58,33 +54,6 @@ } override fun initEvent() { - - } - - 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) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 04aa616..c9b11ec 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -77,7 +77,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' //Google官方授权框架 @@ -119,6 +119,8 @@ implementation 'com.github.bumptech.glide:glide:4.9.0' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' + //大图 + implementation 'com.github.chrisbanes:PhotoView:2.3.0' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //异常日志记录 diff --git a/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt index e4346a6..d01d91f 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.common.detector.gd.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 androidx.viewpager2.widget.ViewPager2 import com.casic.common.detector.gd.R import com.casic.common.detector.gd.databinding.ActivityBigImageBinding -import com.casic.common.detector.gd.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : KotlinBaseActivity() { @@ -23,33 +17,35 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { - val index = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.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.offscreenPageLimit = imageSize - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") } - - override fun onPageScrollStateChanged(state: Int) {} }) } @@ -58,33 +54,6 @@ } override fun initEvent() { - - } - - 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) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt index 69615bc..da898b2 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt @@ -9,7 +9,7 @@ import com.pengxh.kt.lite.extensions.getScreenHeight import com.pengxh.kt.lite.extensions.getScreenWidth import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NewObjectDetailActivity : KotlinBaseActivity() { @@ -35,7 +35,7 @@ params.height = ((getScreenHeight() * 0.3).toInt()) window.attributes = params - val identifierId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val identifierId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.identifierIdView.text = identifierId } diff --git a/app/build.gradle b/app/build.gradle index 04aa616..c9b11ec 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -77,7 +77,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' //Google官方授权框架 @@ -119,6 +119,8 @@ implementation 'com.github.bumptech.glide:glide:4.9.0' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' + //大图 + implementation 'com.github.chrisbanes:PhotoView:2.3.0' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //异常日志记录 diff --git a/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt index e4346a6..d01d91f 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.common.detector.gd.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 androidx.viewpager2.widget.ViewPager2 import com.casic.common.detector.gd.R import com.casic.common.detector.gd.databinding.ActivityBigImageBinding -import com.casic.common.detector.gd.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : KotlinBaseActivity() { @@ -23,33 +17,35 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { - val index = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.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.offscreenPageLimit = imageSize - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") } - - override fun onPageScrollStateChanged(state: Int) {} }) } @@ -58,33 +54,6 @@ } override fun initEvent() { - - } - - 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) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt index 69615bc..da898b2 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt @@ -9,7 +9,7 @@ import com.pengxh.kt.lite.extensions.getScreenHeight import com.pengxh.kt.lite.extensions.getScreenWidth import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NewObjectDetailActivity : KotlinBaseActivity() { @@ -35,7 +35,7 @@ params.height = ((getScreenHeight() * 0.3).toInt()) window.attributes = params - val identifierId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val identifierId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.identifierIdView.text = identifierId } diff --git a/app/src/main/java/com/casic/common/detector/gd/view/ObjectDetailActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/ObjectDetailActivity.kt index 00778a9..62af5a5 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/ObjectDetailActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/ObjectDetailActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.extensions.getScreenWidth 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.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ObjectDetailActivity : KotlinBaseActivity() { @@ -46,7 +46,7 @@ params.height = ((getScreenHeight() * 0.7).toInt()) window.attributes = params - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! try { marker = DataBaseManager.get.queryMarkerById(id).first() binding.objectTypeView.text = diff --git a/app/build.gradle b/app/build.gradle index 04aa616..c9b11ec 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -77,7 +77,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' //Google官方授权框架 @@ -119,6 +119,8 @@ implementation 'com.github.bumptech.glide:glide:4.9.0' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' + //大图 + implementation 'com.github.chrisbanes:PhotoView:2.3.0' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //异常日志记录 diff --git a/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt index e4346a6..d01d91f 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.common.detector.gd.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 androidx.viewpager2.widget.ViewPager2 import com.casic.common.detector.gd.R import com.casic.common.detector.gd.databinding.ActivityBigImageBinding -import com.casic.common.detector.gd.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : KotlinBaseActivity() { @@ -23,33 +17,35 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { - val index = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.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.offscreenPageLimit = imageSize - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") } - - override fun onPageScrollStateChanged(state: Int) {} }) } @@ -58,33 +54,6 @@ } override fun initEvent() { - - } - - 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) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt index 69615bc..da898b2 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt @@ -9,7 +9,7 @@ import com.pengxh.kt.lite.extensions.getScreenHeight import com.pengxh.kt.lite.extensions.getScreenWidth import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NewObjectDetailActivity : KotlinBaseActivity() { @@ -35,7 +35,7 @@ params.height = ((getScreenHeight() * 0.3).toInt()) window.attributes = params - val identifierId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val identifierId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.identifierIdView.text = identifierId } diff --git a/app/src/main/java/com/casic/common/detector/gd/view/ObjectDetailActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/ObjectDetailActivity.kt index 00778a9..62af5a5 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/ObjectDetailActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/ObjectDetailActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.extensions.getScreenWidth 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.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ObjectDetailActivity : KotlinBaseActivity() { @@ -46,7 +46,7 @@ params.height = ((getScreenHeight() * 0.7).toInt()) window.attributes = params - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! try { marker = DataBaseManager.get.queryMarkerById(id).first() binding.objectTypeView.text = diff --git a/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt index e359965..d7499ca 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt @@ -41,7 +41,7 @@ import com.pengxh.kt.lite.extensions.getSystemService 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.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.dialog.AlertMessageDialog @@ -96,7 +96,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val flag = intent.getStringExtra(Constant.INTENT_PARAM_KEY) as String + val flag = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY) as String isExecuteTask = flag != "0" //绑定串口通信服务 diff --git a/app/build.gradle b/app/build.gradle index 04aa616..c9b11ec 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -77,7 +77,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' //Google官方授权框架 @@ -119,6 +119,8 @@ implementation 'com.github.bumptech.glide:glide:4.9.0' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' + //大图 + implementation 'com.github.chrisbanes:PhotoView:2.3.0' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //异常日志记录 diff --git a/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt index e4346a6..d01d91f 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.common.detector.gd.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 androidx.viewpager2.widget.ViewPager2 import com.casic.common.detector.gd.R import com.casic.common.detector.gd.databinding.ActivityBigImageBinding -import com.casic.common.detector.gd.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : KotlinBaseActivity() { @@ -23,33 +17,35 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { - val index = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.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.offscreenPageLimit = imageSize - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") } - - override fun onPageScrollStateChanged(state: Int) {} }) } @@ -58,33 +54,6 @@ } override fun initEvent() { - - } - - 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) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt index 69615bc..da898b2 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt @@ -9,7 +9,7 @@ import com.pengxh.kt.lite.extensions.getScreenHeight import com.pengxh.kt.lite.extensions.getScreenWidth import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NewObjectDetailActivity : KotlinBaseActivity() { @@ -35,7 +35,7 @@ params.height = ((getScreenHeight() * 0.3).toInt()) window.attributes = params - val identifierId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val identifierId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.identifierIdView.text = identifierId } diff --git a/app/src/main/java/com/casic/common/detector/gd/view/ObjectDetailActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/ObjectDetailActivity.kt index 00778a9..62af5a5 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/ObjectDetailActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/ObjectDetailActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.extensions.getScreenWidth 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.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ObjectDetailActivity : KotlinBaseActivity() { @@ -46,7 +46,7 @@ params.height = ((getScreenHeight() * 0.7).toInt()) window.attributes = params - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! try { marker = DataBaseManager.get.queryMarkerById(id).first() binding.objectTypeView.text = diff --git a/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt index e359965..d7499ca 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt @@ -41,7 +41,7 @@ import com.pengxh.kt.lite.extensions.getSystemService 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.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.dialog.AlertMessageDialog @@ -96,7 +96,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val flag = intent.getStringExtra(Constant.INTENT_PARAM_KEY) as String + val flag = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY) as String isExecuteTask = flag != "0" //绑定串口通信服务 diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index b0b948c..88592cd 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,41 +1,35 @@ - + android:background="@color/black"> - + android:layout_height="match_parent" /> - + - + android:layout_centerVertical="true" + android:layout_marginStart="@dimen/lib_dp_10" + android:src="@drawable/ic_title_left" /> - - - - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 04aa616..c9b11ec 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -77,7 +77,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' //Google官方授权框架 @@ -119,6 +119,8 @@ implementation 'com.github.bumptech.glide:glide:4.9.0' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' + //大图 + implementation 'com.github.chrisbanes:PhotoView:2.3.0' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //异常日志记录 diff --git a/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt index e4346a6..d01d91f 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.common.detector.gd.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 androidx.viewpager2.widget.ViewPager2 import com.casic.common.detector.gd.R import com.casic.common.detector.gd.databinding.ActivityBigImageBinding -import com.casic.common.detector.gd.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : KotlinBaseActivity() { @@ -23,33 +17,35 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { - val index = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.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.offscreenPageLimit = imageSize - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") } - - override fun onPageScrollStateChanged(state: Int) {} }) } @@ -58,33 +54,6 @@ } override fun initEvent() { - - } - - 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) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt index 69615bc..da898b2 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt @@ -9,7 +9,7 @@ import com.pengxh.kt.lite.extensions.getScreenHeight import com.pengxh.kt.lite.extensions.getScreenWidth import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NewObjectDetailActivity : KotlinBaseActivity() { @@ -35,7 +35,7 @@ params.height = ((getScreenHeight() * 0.3).toInt()) window.attributes = params - val identifierId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val identifierId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.identifierIdView.text = identifierId } diff --git a/app/src/main/java/com/casic/common/detector/gd/view/ObjectDetailActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/ObjectDetailActivity.kt index 00778a9..62af5a5 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/ObjectDetailActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/ObjectDetailActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.extensions.getScreenWidth 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.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ObjectDetailActivity : KotlinBaseActivity() { @@ -46,7 +46,7 @@ params.height = ((getScreenHeight() * 0.7).toInt()) window.attributes = params - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! try { marker = DataBaseManager.get.queryMarkerById(id).first() binding.objectTypeView.text = diff --git a/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt index e359965..d7499ca 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt @@ -41,7 +41,7 @@ import com.pengxh.kt.lite.extensions.getSystemService 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.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.dialog.AlertMessageDialog @@ -96,7 +96,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val flag = intent.getStringExtra(Constant.INTENT_PARAM_KEY) as String + val flag = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY) as String isExecuteTask = flag != "0" //绑定串口通信服务 diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index b0b948c..88592cd 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,41 +1,35 @@ - + android:background="@color/black"> - + android:layout_height="match_parent" /> - + - + android:layout_centerVertical="true" + android:layout_marginStart="@dimen/lib_dp_10" + android:src="@drawable/ic_title_left" /> - - - - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_big_image.xml b/app/src/main/res/layout/item_big_image.xml new file mode 100644 index 0000000..69f5c73 --- /dev/null +++ b/app/src/main/res/layout/item_big_image.xml @@ -0,0 +1,6 @@ + + diff --git a/app/build.gradle b/app/build.gradle index 04aa616..c9b11ec 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -77,7 +77,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' //Google官方授权框架 @@ -119,6 +119,8 @@ implementation 'com.github.bumptech.glide:glide:4.9.0' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' + //大图 + implementation 'com.github.chrisbanes:PhotoView:2.3.0' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //异常日志记录 diff --git a/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt index e4346a6..d01d91f 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.common.detector.gd.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 androidx.viewpager2.widget.ViewPager2 import com.casic.common.detector.gd.R import com.casic.common.detector.gd.databinding.ActivityBigImageBinding -import com.casic.common.detector.gd.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : KotlinBaseActivity() { @@ -23,33 +17,35 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { - val index = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.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.offscreenPageLimit = imageSize - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") } - - override fun onPageScrollStateChanged(state: Int) {} }) } @@ -58,33 +54,6 @@ } override fun initEvent() { - - } - - 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) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt index 69615bc..da898b2 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/NewObjectDetailActivity.kt @@ -9,7 +9,7 @@ import com.pengxh.kt.lite.extensions.getScreenHeight import com.pengxh.kt.lite.extensions.getScreenWidth import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NewObjectDetailActivity : KotlinBaseActivity() { @@ -35,7 +35,7 @@ params.height = ((getScreenHeight() * 0.3).toInt()) window.attributes = params - val identifierId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val identifierId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.identifierIdView.text = identifierId } diff --git a/app/src/main/java/com/casic/common/detector/gd/view/ObjectDetailActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/ObjectDetailActivity.kt index 00778a9..62af5a5 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/ObjectDetailActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/ObjectDetailActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.extensions.getScreenWidth 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.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ObjectDetailActivity : KotlinBaseActivity() { @@ -46,7 +46,7 @@ params.height = ((getScreenHeight() * 0.7).toInt()) window.attributes = params - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! try { marker = DataBaseManager.get.queryMarkerById(id).first() binding.objectTypeView.text = diff --git a/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt index e359965..d7499ca 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt @@ -41,7 +41,7 @@ import com.pengxh.kt.lite.extensions.getSystemService 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.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.dialog.AlertMessageDialog @@ -96,7 +96,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val flag = intent.getStringExtra(Constant.INTENT_PARAM_KEY) as String + val flag = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY) as String isExecuteTask = flag != "0" //绑定串口通信服务 diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index b0b948c..88592cd 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,41 +1,35 @@ - + android:background="@color/black"> - + android:layout_height="match_parent" /> - + - + android:layout_centerVertical="true" + android:layout_marginStart="@dimen/lib_dp_10" + android:src="@drawable/ic_title_left" /> - - - - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_big_image.xml b/app/src/main/res/layout/item_big_image.xml new file mode 100644 index 0000000..69f5c73 --- /dev/null +++ b/app/src/main/res/layout/item_big_image.xml @@ -0,0 +1,6 @@ + + diff --git a/app/src/main/res/layout/item_big_picture.xml b/app/src/main/res/layout/item_big_picture.xml deleted file mode 100644 index d90eb44..0000000 --- a/app/src/main/res/layout/item_big_picture.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file