修改上传图片逻辑

This commit is contained in:
2025-08-09 16:02:08 +08:00
parent ed7461261c
commit a8dcdf8b4b
13 changed files with 586 additions and 156 deletions

View File

@@ -2,10 +2,12 @@ package com.yuyin.module_live.ui.roomset
import android.Manifest
import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.text.TextUtils
import android.view.KeyEvent
import android.view.View
import android.widget.ImageView
import android.widget.RelativeLayout
import android.widget.TextView
import androidx.recyclerview.widget.GridLayoutManager
@@ -13,14 +15,21 @@ import androidx.recyclerview.widget.LinearLayoutManager
import com.alibaba.android.arouter.facade.annotation.Route
import com.baoyz.actionsheet.ActionSheet
import com.bumptech.glide.Glide
import com.bumptech.glide.Priority
import com.bumptech.glide.request.RequestOptions
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.kongzue.dialog.util.BaseDialog
import com.kongzue.dialog.v3.CustomDialog
import com.luck.picture.lib.basic.PictureSelector
import com.luck.picture.lib.engine.ImageEngine
import com.luck.picture.lib.entity.LocalMedia
import com.luck.picture.lib.style.PictureSelectorStyle
import com.lzy.imagepicker.ImagePicker
import com.lzy.imagepicker.bean.ImageItem
import com.lzy.imagepicker.ui.ImageGridActivity
import com.tbruyelle.rxpermissions2.RxPermissions
import com.tencent.qcloud.tuicore.component.imageEngine.impl.GlideEngine
import com.yuyin.lib_base.Const
import com.yuyin.lib_base.arouter.AroutUtil.LIVE_LIVESETNEW
import com.yuyin.lib_base.base.BaseDataBindingActivity
@@ -46,11 +55,13 @@ import kotlin.collections.set
@Route(path = LIVE_LIVESETNEW)
class RoomSetNewActivity : BaseDataBindingActivity<RoomSetViewModel, ActivityRoomSettingNewBinding>() {
class RoomSetNewActivity :
BaseDataBindingActivity<RoomSetViewModel, ActivityRoomSettingNewBinding>() {
private var roomImgyAdapter: RoomImgyAdapter? = null
lateinit var mEnterRoom: EnterRoomInfo
// lateinit var categorRoomBeans: ArrayList<CategorRoomBean>
private var roomType=""
// lateinit var categorRoomBeans: ArrayList<CategorRoomBean>
private var roomType = ""
var room_background = ""
override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
@@ -62,26 +73,26 @@ class RoomSetNewActivity : BaseDataBindingActivity<RoomSetViewModel, ActivityRoo
}
override fun startObserve() {
viewModel.roomCateBean.observe(this){
viewModel.roomCateBean.observe(this) {
for (item in it.indices) {
if (mEnterRoom.cate_id == it[item].cate_id.toString()) {
it[item].isSelect = true
roomType=it[item].cate_id.toString()
roomType = it[item].cate_id.toString()
break
}
}
mDataBinding.rvContainer.layoutManager =
LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)
var tagAdapter=TagAdapter(it)
var tagAdapter = TagAdapter(it)
mDataBinding.rvContainer.adapter = tagAdapter
tagAdapter.setOnItemClickListener { adapter, view, position ->
val data: List<RoomCateBean> = tagAdapter!!.data
for(list in data){
for (list in data) {
list.isSelect = false
}
tagAdapter.data[position].isSelect=true
roomType= tagAdapter.data[position].cate_id.toString()
tagAdapter.data[position].isSelect = true
roomType = tagAdapter.data[position].cate_id.toString()
tagAdapter.notifyDataSetChanged()
}
}
@@ -126,7 +137,7 @@ class RoomSetNewActivity : BaseDataBindingActivity<RoomSetViewModel, ActivityRoo
map["room_intro"] = room_intro
map["cate_id"] = roomType
map["room_cover"] = it[0]
if(!TextUtils.isEmpty(mDataBinding.etPass.text.toString().trim())){
if (!TextUtils.isEmpty(mDataBinding.etPass.text.toString().trim())) {
map["room_password"] = mDataBinding.etPass.text.toString().trim()
}
map["room_background_id"] = room_background
@@ -139,8 +150,8 @@ class RoomSetNewActivity : BaseDataBindingActivity<RoomSetViewModel, ActivityRoo
EventBus.getDefault().post(FirstEvent("指定发送", Const.FANGJIANSHEZHI))
backToRoom()
})
viewModel.roomInfo.observe(this){
if(!TextUtils.isEmpty(it.room_password)){
viewModel.roomInfo.observe(this) {
if (!TextUtils.isEmpty(it.room_password)) {
mDataBinding.etPass.setText(it.room_password)
}
@@ -189,27 +200,90 @@ class RoomSetNewActivity : BaseDataBindingActivity<RoomSetViewModel, ActivityRoo
override fun initEvent() {
mDataBinding.llfjfcbl.setOnClickListener {
var intent=Intent(this,RoomShareRatioActivity::class.java)
intent.putExtra("rid",mEnterRoom.rid)
var intent = Intent(this, RoomShareRatioActivity::class.java)
intent.putExtra("rid", mEnterRoom.rid)
startActivity(intent)
}
mDataBinding.ivBaseBack2.setOnClickListener {
backToRoom()
}
mDataBinding.headImage.setOnClickListener {
showImgPop()
// showImgPop()
PictureSelector.create(this)
.openGallery(1)
.setImageEngine(TUIEngine())
.setSelectorUIStyle(PictureSelectorStyle())
.isGif(false)
.setMaxSelectNum(1)
.isPreviewImage(true)
.isDisplayCamera(true)
.isOriginalSkipCompress(true)
.forResult(REQUEST_CODE_SELECT) //结果回调onActivityResult code
}
mDataBinding.tvBaocun.setOnClickListener {
baocun()
}
mDataBinding.llYyt.setOnClickListener {
val intent = Intent(this, RoomSetTypeActivity::class.java)
intent.putExtra("rid",mEnterRoom.rid)
intent.putExtra("rid", mEnterRoom.rid)
startActivity(intent)
}
}
private fun baocun(){
class TUIEngine : ImageEngine {
override fun loadImage(context: Context, url: String, imageView: ImageView) {
GlideEngine.loadImage(imageView, url)
}
override fun loadImage(
context: Context?,
imageView: ImageView?,
url: String?,
maxWidth: Int,
maxHeight: Int
) {
if (imageView != null) {
Glide.with(context!!)
.load(url)
.apply(
RequestOptions()
.override(maxWidth, maxHeight)
.priority(Priority.HIGH)
.fitCenter()
)
.into(imageView)
}
}
override fun loadAlbumCover(context: Context, url: String, imageView: ImageView) {
GlideEngine.loadImage(imageView, url)
}
override fun loadGridImage(context: Context, url: String, imageView: ImageView) {
GlideEngine.loadImage(imageView, url)
}
override fun pauseRequests(context: Context) {
// GlideEngine中没有对应方法可以留空
}
override fun resumeRequests(context: Context) {
// GlideEngine中没有对应方法可以留空
}
fun clearMemory(context: Context) {
// 可以调用Glide的清理方法
Glide.get(context).clearMemory()
}
fun loadPreImage(context: Context, url: String, imageView: ImageView) {
GlideEngine.loadImage(imageView, url)
}
}
private fun baocun() {
val nickname = mDataBinding.edtLoginName.text.toString().trim()
if (TextUtils.isEmpty(nickname)) {
"房间名称不能为空".showToast()
@@ -238,7 +312,7 @@ class RoomSetNewActivity : BaseDataBindingActivity<RoomSetViewModel, ActivityRoo
map["cate_id"] = roomType
map["room_cover"] = mEnterRoom.room_cover
map["room_background_id"] = room_background
if(!TextUtils.isEmpty(mDataBinding.etPass.text.toString().trim())){
if (!TextUtils.isEmpty(mDataBinding.etPass.text.toString().trim())) {
map["room_password"] = mDataBinding.etPass.text.toString().trim()
}
map["rid"] = mEnterRoom.rid
@@ -304,6 +378,7 @@ class RoomSetNewActivity : BaseDataBindingActivity<RoomSetViewModel, ActivityRoo
REQUEST_CODE_SELECT
)
}
1 -> {
// 跳转到相册
// Always true pre-M
@@ -339,29 +414,53 @@ class RoomSetNewActivity : BaseDataBindingActivity<RoomSetViewModel, ActivityRoo
return
}
val tempList: ArrayList<ImageItem>
if (resultCode == ImagePicker.RESULT_CODE_ITEMS) {
// if (resultCode == ImagePicker.RESULT_CODE_ITEMS) {
// //添加图片返回
// if (requestCode == REQUEST_CODE_SELECT) {
// tempList =
// data.getSerializableExtra(ImagePicker.EXTRA_RESULT_ITEMS) as ArrayList<ImageItem>
// selImageList.clear()
// selImageList.addAll(tempList)
// if (selImageList.size > 0) {
// Glide.with(this).load(selImageList[0].path).into(head_image)
// }
// }
// }
if (resultCode == RESULT_OK && data != null) {
//添加图片返回
if (requestCode == REQUEST_CODE_SELECT) {
tempList =
data.getSerializableExtra(ImagePicker.EXTRA_RESULT_ITEMS) as ArrayList<ImageItem>
// 处理 PictureSelector 返回的结果
val localMediaList: ArrayList<LocalMedia> = PictureSelector.obtainSelectorList(data)
// 清空原有选择
selImageList.clear()
selImageList.addAll(tempList)
// 将 LocalMedia 转换为 ImageItem
for (localMedia in localMediaList) {
val imageItem = ImageItem()
imageItem.path = localMedia.realPath // 或者使用 localMedia.compressPath
selImageList.add(imageItem)
}
if (selImageList.size > 0) {
Glide.with(this).load(selImageList[0].path).into(head_image)
}
}
}
}
class TagAdapter(data: List<RoomCateBean>) :
BaseQuickAdapter<RoomCateBean, BaseViewHolder>(R.layout.item_tag_room_type, data) {
override fun convert(helper: BaseViewHolder, item: RoomCateBean?) {
helper.setText(R.id.tv_content, item?.category_name)
helper.getView<TextView>(R.id.tv_content).isSelected = item!!.isSelect
class TagAdapter(data: List<RoomCateBean>) :
BaseQuickAdapter<RoomCateBean, BaseViewHolder>(R.layout.item_tag_room_type, data) {
override fun convert(helper: BaseViewHolder, item: RoomCateBean?) {
helper.setText(R.id.tv_content, item?.category_name)
helper.getView<TextView>(R.id.tv_content).isSelected = item!!.isSelect
}
}
}
}
}
}