记录-图片预览多选

This commit is contained in:
lijia 2024-03-07 17:30:44 +08:00
parent 3023d57680
commit 0999a99eb7
6 changed files with 63 additions and 25 deletions

View File

@ -8,6 +8,7 @@ import androidx.recyclerview.widget.RecyclerView
import com.dahe.gldriver.R import com.dahe.gldriver.R
import com.dahe.gldriver.adapter.GridItemAdapter import com.dahe.gldriver.adapter.GridItemAdapter
import com.dahe.gldriver.adapter.WaybillAdapter import com.dahe.gldriver.adapter.WaybillAdapter
import com.dahe.gldriver.adapter.WaybillListAdapter
import com.dahe.gldriver.base.AppConfig import com.dahe.gldriver.base.AppConfig
import com.dahe.gldriver.bean.CarBean import com.dahe.gldriver.bean.CarBean
import com.dahe.gldriver.bean.GridBean import com.dahe.gldriver.bean.GridBean
@ -17,6 +18,7 @@ import com.dahe.gldriver.net.BaseObserver
import com.dahe.gldriver.net.DataManager import com.dahe.gldriver.net.DataManager
import com.dahe.gldriver.net.RxHttpCallBack import com.dahe.gldriver.net.RxHttpCallBack
import com.dahe.gldriver.ui.waybill.activity.WaybillDetailActivity import com.dahe.gldriver.ui.waybill.activity.WaybillDetailActivity
import com.dahe.gldriver.ui.waybill.activity.WaybillUpPicActivity
import com.dahe.gldriver.utils.CommonPopUtils import com.dahe.gldriver.utils.CommonPopUtils
import com.dahe.gldriver.utils.OrderUtils import com.dahe.gldriver.utils.OrderUtils
import com.dahe.glex.bean.OrderBean import com.dahe.glex.bean.OrderBean
@ -75,8 +77,14 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>(), RefreshCallBack {
tvMar.isSelected = true tvMar.isSelected = true
ivMyWaybill.setOnClickListener { ivMyWaybill.setOnClickListener {
if (this@HomeFragment.mListener != null)
this@HomeFragment?.mListener?.invoke(2) // TODO: 调试图片上传todo
ActivityUtils.startActivity(mContext,WaybillUpPicActivity::class.java,Bundle().apply {
putInt(AppConfig.SUCCESS_TYPE,1)
})
// if (this@HomeFragment.mListener != null)
// this@HomeFragment?.mListener?.invoke(2)
} }
} }
initData() initData()
@ -93,9 +101,13 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>(), RefreshCallBack {
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<MutableList<OrderBean>>() { .subscribe(BaseObserver(mContext, object : RxHttpCallBack<MutableList<OrderBean>>() {
override fun onSuccess(t: CommonResponseBean<MutableList<OrderBean>>) { override fun onSuccess(t: CommonResponseBean<MutableList<OrderBean>>) {
super.onSuccess(t) super.onSuccess(t)
if (mRefreshPage === 1) { if (mRefreshPage === 1) {
adapter?.submitList(t.data) if (t.data.size == 0) {
adapter?.submitList(null)
adapter?.setStateViewLayout(mContext, R.layout.empty_view)
} else {
adapter?.submitList(t.data)
}
} else { } else {
adapter?.addAll(t.data) adapter?.addAll(t.data)
} }
@ -126,9 +138,11 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>(), RefreshCallBack {
Color.TRANSPARENT Color.TRANSPARENT
) )
) )
adapter = WaybillAdapter() adapter = WaybillAdapter()
adapter as WaybillAdapter adapter as WaybillAdapter
}.apply { }.apply {
isStateViewEnable = true
setOnItemClickListener { _, _, position -> setOnItemClickListener { _, _, position ->
ActivityUtils.startActivity( ActivityUtils.startActivity(
mContext, mContext,

View File

@ -39,6 +39,7 @@ class MessageFragment : BaseFragment<FragmentMessageBinding>(), RefreshCallBack
} }
override fun onFragmentFirstVisible() { override fun onFragmentFirstVisible() {
setRefresh(binding.refresh,this)
initRecy() initRecy()
} }
@ -72,6 +73,8 @@ class MessageFragment : BaseFragment<FragmentMessageBinding>(), RefreshCallBack
setHasFixedSize(true) setHasFixedSize(true)
adapter = MessageAdapter() adapter = MessageAdapter()
adapter as MessageAdapter adapter as MessageAdapter
}.apply {
isStateViewEnable = true
} }
adapter.submitList(datas) adapter.submitList(datas)

View File

@ -2,6 +2,7 @@ package com.dahe.gldriver.ui.waybill.activity
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import android.widget.ImageView
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import com.amap.api.maps.model.LatLng import com.amap.api.maps.model.LatLng
import com.dahe.gldriver.base.AppConfig import com.dahe.gldriver.base.AppConfig
@ -16,16 +17,20 @@ import com.dahe.gldriver.utils.GDLocationUtils
import com.dahe.mylibrary.adapter.GridImageAdapter import com.dahe.mylibrary.adapter.GridImageAdapter
import com.dahe.mylibrary.adapter.GridImageAdapter.OnItemClickListener import com.dahe.mylibrary.adapter.GridImageAdapter.OnItemClickListener
import com.dahe.mylibrary.base.BaseActivity import com.dahe.mylibrary.base.BaseActivity
import com.dahe.mylibrary.callback.OnPicResultListener
import com.dahe.mylibrary.net.CommonResponseBean import com.dahe.mylibrary.net.CommonResponseBean
import com.dahe.mylibrary.utils.ActivityUtils import com.dahe.mylibrary.utils.ActivityUtils
import com.dahe.mylibrary.utils.LoadingUtils import com.dahe.mylibrary.utils.LoadingUtils
import com.dahe.mylibrary.utils.PopsUtils import com.dahe.mylibrary.utils.PopsUtils
import com.dahe.mylibrary.utils.ToastUtils
import com.dahe.mylibrary.weight.FullyGridLayoutManager import com.dahe.mylibrary.weight.FullyGridLayoutManager
import com.dahe.mylibrary.weight.GlideEngine
import com.luck.picture.lib.basic.PictureSelector
import com.luck.picture.lib.decoration.GridSpacingItemDecoration import com.luck.picture.lib.decoration.GridSpacingItemDecoration
import com.luck.picture.lib.entity.LocalMedia import com.luck.picture.lib.entity.LocalMedia
import com.luck.picture.lib.utils.DensityUtil import com.luck.picture.lib.utils.DensityUtil
import com.luck.picture.lib.widget.SquareRelativeLayout
import com.lxj.xpopup.XPopup
import com.lxj.xpopup.interfaces.OnSrcViewUpdateListener
import com.lxj.xpopup.util.SmartGlideImageLoader
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers import io.reactivex.rxjava3.schedulers.Schedulers
@ -42,7 +47,6 @@ class WaybillUpPicActivity : BaseActivity<ActivityWaybillUppicBinding>() {
var orderId: String = "" var orderId: String = ""
var waybillId: String = "" var waybillId: String = ""
var childreId: String = ""
lateinit var latLng: LatLng lateinit var latLng: LatLng
override fun initView(savedInstanceState: Bundle?) { override fun initView(savedInstanceState: Bundle?) {
@ -52,7 +56,6 @@ class WaybillUpPicActivity : BaseActivity<ActivityWaybillUppicBinding>() {
var type = intent.extras?.run { var type = intent.extras?.run {
orderId = getString(AppConfig.ORDER_ID, "") orderId = getString(AppConfig.ORDER_ID, "")
waybillId = getString(AppConfig.WAYBILL_ID, "") waybillId = getString(AppConfig.WAYBILL_ID, "")
childreId = getString(AppConfig.CHILDRE_ID, "")
getInt(AppConfig.SUCCESS_TYPE, 0) getInt(AppConfig.SUCCESS_TYPE, 0)
} }
if (1 == type) { if (1 == type) {
@ -81,26 +84,34 @@ class WaybillUpPicActivity : BaseActivity<ActivityWaybillUppicBinding>() {
) )
var myAdapter = GridImageAdapter(mContext, mData) var myAdapter = GridImageAdapter(mContext, mData)
myAdapter.selectMax = 6
myAdapter.setOnItemClickListener(object : OnItemClickListener { myAdapter.setOnItemClickListener(object : OnItemClickListener {
override fun onItemClick(v: View?, position: Int) { override fun onItemClick(v: View?, position: Int) {
// 预览图片、视频、音频
PictureSelector.create(this@WaybillUpPicActivity)
.openPreview()
.setImageEngine(GlideEngine.createGlideEngine())
.isHidePreviewDownload(true)
.startActivityPreview(position, false, myAdapter.data)
} }
override fun openPicture() { override fun openPicture() {
PopsUtils.getInstance().showSelPic(mContext, myAdapter) { PopsUtils.getInstance().showSelPic(mContext, myAdapter) {
OssServiceUtil.getInstance().run { OssServiceUtil.getInstance().run {
asyncPutImage(it[0].realPath, this@WaybillUpPicActivity)
setResultCallBack { data, oldPath ->
picBean = WaybillPhoto()
picBean.run {
photoUrl = oldPath
this.type = if (type == 1) "1" else "2"
}
upBean.waybillPhotoList.add(picBean) // TODO: 暂时注释
} // asyncPutImage(it[0].realPath, this@WaybillUpPicActivity)
// setResultCallBack { data, oldPath ->
// picBean = WaybillPhoto()
// picBean.run {
// photoUrl = oldPath
// this.type = if (type == 1) "1" else "2"
// }
//
// upBean.waybillPhotoList.add(picBean)
// }
} }
myAdapter.data.addAll(it) myAdapter.data.addAll(it)
myAdapter.notifyDataSetChanged() myAdapter.notifyDataSetChanged()
@ -124,10 +135,12 @@ class WaybillUpPicActivity : BaseActivity<ActivityWaybillUppicBinding>() {
) )
var myAdapter = GridImageAdapter(mContext, mData) var myAdapter = GridImageAdapter(mContext, mData)
myAdapter.selectMax = 1
myAdapter.setOnItemClickListener(object : OnItemClickListener { myAdapter.setOnItemClickListener(object : OnItemClickListener {
override fun onItemClick(v: View?, position: Int) { override fun onItemClick(v: View?, position: Int) {
// 预览图片、视频、音频
PictureSelector.create(this@WaybillUpPicActivity)
.openPreview()
} }
override fun openPicture() { override fun openPicture() {
@ -162,7 +175,6 @@ class WaybillUpPicActivity : BaseActivity<ActivityWaybillUppicBinding>() {
waybillId = this@WaybillUpPicActivity.waybillId waybillId = this@WaybillUpPicActivity.waybillId
latitude = latLng.latitude.toString() latitude = latLng.latitude.toString()
longitude = latLng.longitude.toString() longitude = latLng.longitude.toString()
// orderChildreId = this@WaybillUpPicActivity.childreId
this.type = if (type == 1) "1" else "2" this.type = if (type == 1) "1" else "2"
} }

View File

@ -2,13 +2,13 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/white"
android:gravity="center" android:gravity="center"
android:orientation="vertical"> android:orientation="vertical">
<ImageView <ImageView
android:layout_marginTop="@dimen/dp_m_60"
android:layout_width="@dimen/dp_210" android:layout_width="@dimen/dp_210"
android:layout_height="@dimen/dp_210" android:layout_height="@dimen/dp_210"
android:background="@drawable/empty_content" /> android:background="@drawable/empty_content" />

View File

@ -91,9 +91,9 @@ class PopBottomPic(
.setCompressEngine(ImageFileCompressEngine()) .setCompressEngine(ImageFileCompressEngine())
.isPreviewImage(true) .isPreviewImage(true)
.isMaxSelectEnabledMask(true) .isMaxSelectEnabledMask(true)
.setMaxSelectNum(1) .setMaxSelectNum(6)
.isGif(false) .isGif(false)
.setSelectionMode(SelectModeConfig.SINGLE) // .setSelectionMode(SelectModeConfig.SINGLE)
.setSelectedData(myAdapter.data) .setSelectedData(myAdapter.data)
selectionModel.forResult(object : OnResultCallbackListener<LocalMedia> { selectionModel.forResult(object : OnResultCallbackListener<LocalMedia> {
override fun onResult(result: ArrayList<LocalMedia>) { override fun onResult(result: ArrayList<LocalMedia>) {

View File

@ -1,6 +1,7 @@
package com.dahe.mylibrary.utils package com.dahe.mylibrary.utils
import android.content.Context import android.content.Context
import android.widget.ImageView
import com.dahe.mylibrary.adapter.GridImageAdapter import com.dahe.mylibrary.adapter.GridImageAdapter
import com.dahe.mylibrary.base.SingletonNoPHolder import com.dahe.mylibrary.base.SingletonNoPHolder
import com.dahe.mylibrary.callback.OnPicResultListener import com.dahe.mylibrary.callback.OnPicResultListener
@ -47,4 +48,12 @@ class PopsUtils private constructor(){
.asCustom(PopNorBottomPic(ctx, listenter)) .asCustom(PopNorBottomPic(ctx, listenter))
.show() .show()
} }
fun showBigPic(ctx: Context,srcImageView: ImageView){
// XPopup.Builder(ctx)
// .isDestroyOnDismiss(true)
// .asImageViewer(srcImageView,0,,)
}
} }