酒吧房 1

This commit is contained in:
2026-01-05 15:43:25 +08:00
parent 43ea35d3a2
commit 9ef4f27ed9
36 changed files with 1101 additions and 4 deletions

View File

@@ -0,0 +1,179 @@
package com.xscm.modulemain.widget
import android.content.Context
import android.content.res.TypedArray
import android.media.Image
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 RoomPubWheatView : 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
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)
}
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) {
"9" -> {
iv_tag_type?.visibility = View.VISIBLE
iv_tag_type?.setImageResource(com.xscm.moduleutil.R.mipmap.zc)
tv_time?.visibility = View.GONE
ll_bottom?.visibility = View.GONE
iv_custom_gift?.visibility = View.GONE
}
"10" -> {
iv_tag_type?.visibility = View.VISIBLE
iv_tag_type?.setImageResource(com.xscm.moduleutil.R.mipmap.jb)
tv_time?.visibility = View.GONE
ll_bottom?.visibility = View.GONE
iv_custom_gift?.visibility = View.GONE
}
else -> {
tv_time?.visibility = View.GONE
ll_bottom?.visibility = View.GONE
iv_custom_gift?.visibility = View.GONE
}
}
mCharmView.visibility = View.GONE
if (isOn) {
handleOnState(bean)
} else {
handleOffState(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 (!bean.pit_number.equals("9") && !bean.pit_number.equals("10")) {
tv_time?.visibility = View.VISIBLE
ll_bottom?.visibility = View.VISIBLE
iv_custom_gift?.visibility = View.VISIBLE
}
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 handleOffState(bean: RoomPitBean) {
mTvName.text = pitNumberText
mRiv.visibility = VISIBLE
mRiv.setImageResource(com.xscm.moduleutil.R.mipmap.room_ic_wheat_default)
mIvShutup.visibility = GONE
iv_tag_type!!.visibility = GONE
mIvFrame.stopAll()
mIvFrame.visibility = GONE
mIvRipple.visibility = GONE
}
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) {
}
}