酒吧房 交友小屋 UI

This commit is contained in:
2026-01-06 14:43:12 +08:00
parent 5cc393fe06
commit d48f13f266
47 changed files with 743 additions and 32 deletions

View File

@@ -0,0 +1,157 @@
package com.xscm.modulemain.widget
import android.content.Context
import android.content.res.ColorStateList
import android.content.res.TypedArray
import android.graphics.Color
import android.text.TextUtils
import android.util.AttributeSet
import android.view.View
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.TextView
import com.xscm.modulemain.R
import com.xscm.moduleutil.bean.room.RoomPitBean
import com.xscm.moduleutil.utils.ImageUtils
import com.xscm.moduleutil.widget.BaseWheatView
class RoomPrivateWheatView : BaseWheatView {
constructor(context: Context?) : super(context)
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(
context,
attrs,
defStyleAttr
)
private var iv_tag_type: ImageView? = null
var iv_custom_gift: ImageView? = null
private var hostTv: TextView? = null
private var tv_time: TextView? = null
private var ll_bottom: LinearLayout? = null
var ivYueT: ImageView? = null
var ivLiaoT: ImageView? = null
var ivHeadBg: ImageView? = null
override fun initPit(context: Context, attrs: AttributeSet) {
var typedArray: TypedArray? = null
try {
typedArray = context.obtainStyledAttributes(
attrs,
com.xscm.moduleutil.R.styleable.RoomDefaultWheatView
)
pitNumber =
typedArray.getString(com.xscm.moduleutil.R.styleable.RoomDefaultWheatView_room_wheat_number)
} finally {
typedArray?.recycle()
}
mCharmView = findViewById(R.id.charm_view)
mIvRipple = findViewById(R.id.iv_ripple)
mIvFrame = findViewById(R.id.iv_frame)
mIvShutup = findViewById(R.id.iv_shutup)
mRiv = findViewById(R.id.riv)
iv_tag_type = findViewById(R.id.iv_tag_type)
ll_bottom = findViewById(R.id.ll_bottom)
iv_custom_gift = findViewById(R.id.iv_custom_gift)
tv_time = findViewById(R.id.tv_time)
ivYueT = findViewById(R.id.iv_yue_t)
ivLiaoT = findViewById(R.id.iv_liao_t)
ivHeadBg = findViewById(R.id.iv_head_bg)
tv_time?.visibility = View.GONE
ll_bottom?.visibility = View.GONE
iv_custom_gift?.visibility = View.GONE
iv_tag_type?.visibility = View.GONE
ivHeadBg?.visibility = View.VISIBLE
}
override fun getLayoutId(): Int {
return R.layout.layout_room_pub_wheat
}
// 提供一个方法来设置这个属性,便于在代码中动态更改
fun setRoomWheatNumber(number: String?) {
this.pitNumber = number
}
fun setHostTv(hostTv: TextView) {
this.hostTv = hostTv
}
public override fun setPitData(bean: RoomPitBean) {
pitBean = bean // 统一使用参数 bean
stopAndClearAnimation() // 清理之前的动画资源
when (bean.pit_number) {
"1" -> {
ivHeadBg?.imageTintList = ColorStateList.valueOf(Color.parseColor("#FF7983F6"))
}
"2" -> {
ivHeadBg?.imageTintList = ColorStateList.valueOf(Color.parseColor("#FFFB85FF"))
}
}
tv_time?.visibility = View.GONE
ll_bottom?.visibility = View.GONE
iv_custom_gift?.visibility = View.GONE
iv_tag_type?.visibility = View.GONE
mCharmView.visibility = View.GONE
handleOnState(bean)
}
fun setSex(value: String?, format: Boolean) {
mCharmView.setSex("", "", value, format)
}
private fun handleOnState(bean: RoomPitBean) {
mIvRipple.visibility = VISIBLE
mTvName.text = bean.nickname
ImageUtils.loadHeadCC(bean.avatar, mRiv)
if (TextUtils.isEmpty(bean.dress)) {
mIvFrame.stopAll()
mIvFrame.visibility = INVISIBLE
} else {
mIvFrame.visibility = VISIBLE
mIvFrame.setSource(bean.dress, 3)
}
}
private val pitNumberText: String
get() {
return "虚位以待"
}
private fun stopAndClearAnimation() {
if (mIvRipple != null) {
mIvRipple.stopAnimation(true)
}
}
override fun onRemoteSoundLevelUpdate(userId: String, soundLevel: Int) {
}
override fun onLocalSoundLevelUpdate(volume: Int) {
}
override fun userJoined(userId: Int, elapsd: Int) {
}
override fun userOffline(userId: Int, reason: Int) {
}
override fun pkOffSide(userId: Int) {
}
}

View File

@@ -128,6 +128,7 @@ class RoomPubWheatView : BaseWheatView {
tv_time?.visibility = View.VISIBLE
ll_bottom?.visibility = View.VISIBLE
iv_custom_gift?.visibility = View.VISIBLE
tv_time?.text = "12:34"
}
if (TextUtils.isEmpty(bean.dress)) {