签约上下麦
This commit is contained in:
@@ -4,89 +4,30 @@ import android.content.Context
|
||||
import android.content.res.TypedArray
|
||||
import android.text.TextUtils
|
||||
import android.util.AttributeSet
|
||||
import android.widget.ImageView
|
||||
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 RoomMentorShipWheatView(context: Context?) : BaseWheatView(context) {
|
||||
class RoomMentorShipWheatView : BaseWheatView {
|
||||
private var iv_tag_type: ImageView? = null
|
||||
|
||||
constructor(context: Context?, attrs: AttributeSet?) : this(context) {
|
||||
initPit(context, attrs)
|
||||
}
|
||||
constructor(context: Context?) : super(context)
|
||||
|
||||
override fun getLayoutId(): Int {
|
||||
return R.layout.layout_room_mentorship_wheat
|
||||
}
|
||||
|
||||
// 提供一个方法来设置这个属性,便于在代码中动态更改
|
||||
fun setRoomWheatNumber(number: String?) {
|
||||
this.pitNumber = number
|
||||
}
|
||||
|
||||
override fun setPitData(bean: RoomPitBean?) {
|
||||
if (bean == null) return
|
||||
|
||||
pitBean = bean // 统一使用参数 bean
|
||||
stopAndClearAnimation() // 清理之前的动画资源
|
||||
|
||||
if (isOn) {
|
||||
handleOnState(bean)
|
||||
} else {
|
||||
handleOffState(bean)
|
||||
}
|
||||
}
|
||||
|
||||
private fun stopAndClearAnimation() {
|
||||
if (mIvRipple != null) {
|
||||
mIvRipple.stopAnimation(true)
|
||||
}
|
||||
}
|
||||
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
|
||||
|
||||
|
||||
private fun handleOnState(bean: RoomPitBean) {
|
||||
mIvRipple.visibility = VISIBLE
|
||||
mTvName.visibility = VISIBLE
|
||||
mTvName.text = bean.nickname
|
||||
ImageUtils.loadHeadCC(bean.avatar, mRiv)
|
||||
mCharmView.visibility = VISIBLE
|
||||
if (TextUtils.isEmpty(bean.dress)) {
|
||||
mIvFrame.stopAll()
|
||||
mIvFrame.visibility = INVISIBLE
|
||||
} else {
|
||||
mIvFrame.visibility = VISIBLE
|
||||
mIvFrame.setSource(bean.dress, 3)
|
||||
}
|
||||
}
|
||||
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(
|
||||
context,
|
||||
attrs,
|
||||
defStyleAttr
|
||||
)
|
||||
|
||||
private fun handleOffState(bean: RoomPitBean) {
|
||||
if (bean.pit_number == "9") {
|
||||
mTvName.visibility = GONE
|
||||
} else {
|
||||
mTvName.visibility = VISIBLE
|
||||
mTvName.setText(getPitNumberText())
|
||||
}
|
||||
mCharmView.visibility = GONE
|
||||
mRiv.visibility = VISIBLE
|
||||
mRiv.setImageResource(R.mipmap.jukebox_room_mask)
|
||||
mIvShutup.visibility = GONE
|
||||
mIvFrame.stopAll()
|
||||
mIvFrame.visibility = GONE
|
||||
mIvRipple.visibility = GONE
|
||||
}
|
||||
|
||||
|
||||
private fun getPitNumberText(): String {
|
||||
if ("-1" == pitNumber) return ""
|
||||
if ("9" == pitNumber) return ""
|
||||
if ("10" == pitNumber) return "老板"
|
||||
return pitNumber + "号麦"
|
||||
}
|
||||
|
||||
override fun initPit(context: Context?, attrs: AttributeSet?) {
|
||||
override fun initPit(context: Context, attrs: AttributeSet) {
|
||||
var typedArray: TypedArray? = null
|
||||
try {
|
||||
typedArray = context!!.obtainStyledAttributes(
|
||||
typedArray = context.obtainStyledAttributes(
|
||||
attrs,
|
||||
com.xscm.moduleutil.R.styleable.RoomDefaultWheatView
|
||||
)
|
||||
@@ -101,26 +42,104 @@ class RoomMentorShipWheatView(context: Context?) : BaseWheatView(context) {
|
||||
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)
|
||||
}
|
||||
|
||||
override fun onRemoteSoundLevelUpdate(userId: String?, soundLevel: Int) {
|
||||
override fun getLayoutId(): Int {
|
||||
return R.layout.layout_room_mentorship_wheat
|
||||
}
|
||||
|
||||
// 提供一个方法来设置这个属性,便于在代码中动态更改
|
||||
fun setRoomWheatNumber(number: String?) {
|
||||
this.pitNumber = number
|
||||
}
|
||||
|
||||
public override fun setPitData(bean: RoomPitBean) {
|
||||
pitBean = bean // 统一使用参数 bean
|
||||
stopAndClearAnimation() // 清理之前的动画资源
|
||||
|
||||
if (pitBean.pit_number == "9" || pitBean.pit_number == "1") {
|
||||
mCharmView.visibility = VISIBLE
|
||||
}else{
|
||||
mCharmView.visibility = INVISIBLE
|
||||
}
|
||||
|
||||
if (isOn) {
|
||||
handleOnState(bean)
|
||||
} else {
|
||||
handleOffState(bean)
|
||||
}
|
||||
|
||||
iv_tag_type!!.visibility = if (bean.isImageType) VISIBLE else GONE
|
||||
iv_tag_type!!.setImageResource(com.xscm.moduleutil.R.mipmap.mu_yc)
|
||||
}
|
||||
|
||||
fun setSex(value: String?, format: Boolean) {
|
||||
mCharmView.setSex("", "", value, format)
|
||||
}
|
||||
|
||||
fun setImageType(b: Boolean) {
|
||||
if (b) {
|
||||
iv_tag_type!!.visibility = VISIBLE
|
||||
} else iv_tag_type!!.visibility = GONE
|
||||
}
|
||||
|
||||
private fun handleOnState(bean: RoomPitBean) {
|
||||
mIvRipple.visibility = VISIBLE
|
||||
mTvName.visibility = VISIBLE
|
||||
mTvName.text = bean.nickname
|
||||
ImageUtils.loadHeadCC(bean.avatar, mRiv)
|
||||
mCharmView.visibility = 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
|
||||
mCharmView.visibility = GONE
|
||||
mRiv.visibility = VISIBLE
|
||||
mRiv.setImageResource(com.xscm.moduleutil.R.mipmap.room_ic_wheat_default)
|
||||
mIvShutup.visibility = GONE
|
||||
iv_tag_type!!.visibility = GONE
|
||||
// ImageUtils.loadRes(com.xscm.moduleutil.R.mipmap.room_microphone_off, mIvShutup);
|
||||
mIvFrame.stopAll()
|
||||
mIvFrame.visibility = GONE
|
||||
mIvRipple.visibility = GONE
|
||||
}
|
||||
|
||||
private fun stopAndClearAnimation() {
|
||||
if (mIvRipple != null) {
|
||||
// mIvRipple.stopAnimation();
|
||||
mIvRipple.stopAnimation(true)
|
||||
// 清理SVGA资源,避免内存泄漏
|
||||
// mIvRipple.clear();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
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) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user