退出房间

This commit is contained in:
2026-01-08 17:02:29 +08:00
parent 0b37364a11
commit e74bfde545
12 changed files with 125 additions and 72 deletions

View File

@@ -4829,7 +4829,7 @@ public class RetrofitClient {
@Override @Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
if (response.code() == 200) { if (response.code() == 200) {
observer.onNext(null); observer.onNext("");
} else { } else {
ToastUtils.showShort("请求错误:" + response.code()); ToastUtils.showShort("请求错误:" + response.code());
LogUtils.e("quitRoom", response.message()); LogUtils.e("quitRoom", response.message());

View File

@@ -339,10 +339,12 @@ public class MessageExListenerSingleton {
public void onRecvGroupCustomMessage(String msgID, String groupID, V2TIMGroupMemberInfo sender, byte[] customData) { public void onRecvGroupCustomMessage(String msgID, String groupID, V2TIMGroupMemberInfo sender, byte[] customData) {
LogUtils.d("收到群自定义消息:群组 " + groupID + "" + sender.getNickName()); LogUtils.d("收到群自定义消息:群组 " + groupID + "" + sender.getNickName());
if (!groupID.equals("")) { if (!groupID.equals("")) {
String message = new String(customData, StandardCharsets.UTF_8); if (groupID.replace("room","").equals(mRoomId)) {
RoomMessageEvent event = GsonUtils.fromJson(message, RoomMessageEvent.class); String message = new String(customData, StandardCharsets.UTF_8);
notifyMessageReceived(event); RoomMessageEvent event = GsonUtils.fromJson(message, RoomMessageEvent.class);
LogUtils.d("收到群自定义消息(信令):", message); notifyMessageReceived(event);
LogUtils.d("收到群自定义消息(信令):", message);
}
} else { } else {
String message = new String(customData, StandardCharsets.UTF_8); String message = new String(customData, StandardCharsets.UTF_8);
LogUtils.d("收到群自定义消息(信令):", message); LogUtils.d("收到群自定义消息(信令):", message);

View File

@@ -1582,12 +1582,14 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
roomFragment?.handleRoomMessage(messageEvent) roomFragment?.handleRoomMessage(messageEvent)
} else if (msgType == EMMessageInfo.QXRoomMessageTypeFlirtatiousRoom) {//酒吧房约她进入小黑屋 } else if (msgType == EMMessageInfo.QXRoomMessageTypeFlirtatiousRoom) {//酒吧房约她进入小黑屋
if (mRoomInfoResp?.user_info?.user_id.toString() == messageEvent.text.user_id if (mRoomInfoResp?.user_info?.user_id.toString() == messageEvent.text.user_id
|| mRoomInfoResp?.user_info?.user_id.toString() == messageEvent.text.meet_user_id) { || mRoomInfoResp?.user_info?.user_id.toString() == messageEvent.text.meet_user_id
if (mRoomInfoResp?.user_info?.pit_number !=0) { ) {
if (mRoomInfoResp?.user_info?.pit_number != 0) {
MvpPre?.downPit(roomId, mRoomInfoResp?.user_info?.pit_number.toString()) MvpPre?.downPit(roomId, mRoomInfoResp?.user_info?.pit_number.toString())
} }
MvpPre?.postRoomInfo(messageEvent.text.room_id) AgoraManager.getInstance().lastRoomId = roomId
if (publicScreenFragment != null){ MvpPre?.getRoomIn(messageEvent.text.room_id,"")
if (publicScreenFragment != null) {
MessageExListenerSingleton.getInstance().joinGroup(messageEvent.text.room_id) MessageExListenerSingleton.getInstance().joinGroup(messageEvent.text.room_id)
publicScreenFragment?.setupExMessageListener() publicScreenFragment?.setupExMessageListener()
} }
@@ -2271,6 +2273,10 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
updateCharmForAllPitBeans("") updateCharmForAllPitBeans("")
roomFragment!!.upFriendList(mRoomInfoResp?.room_info?.pit_list) roomFragment!!.upFriendList(mRoomInfoResp?.room_info?.pit_list)
} }
//酒吧房用
if (publicScreenFragment != null)
publicScreenFragment?.isPriRoom = false
} }
private fun updateCharmForAllPitBeans(charm: String) { private fun updateCharmForAllPitBeans(charm: String) {

View File

@@ -1,11 +1,9 @@
package com.xscm.modulemain.activity.room.contacts package com.xscm.modulemain.activity.room.contacts
import android.app.Activity import android.app.Activity
import android.media.Image
import android.widget.ImageView import android.widget.ImageView
import com.xscm.moduleutil.activity.IPresenter import com.xscm.moduleutil.activity.IPresenter
import com.xscm.moduleutil.activity.IView import com.xscm.moduleutil.activity.IView
import com.xscm.moduleutil.bean.GiftBean
import com.xscm.moduleutil.bean.RoonGiftModel import com.xscm.moduleutil.bean.RoonGiftModel
import com.xscm.moduleutil.bean.WalletBean import com.xscm.moduleutil.bean.WalletBean
@@ -18,6 +16,8 @@ class PrivateContacts {
fun sendGiftResult(success:Boolean,imageView: ImageView) fun sendGiftResult(success:Boolean,imageView: ImageView)
fun getGiftList(list: List<RoonGiftModel>) fun getGiftList(list: List<RoonGiftModel>)
fun exitRoom()
} }
interface Ipre : IPresenter{ interface Ipre : IPresenter{
@@ -27,6 +27,8 @@ class PrivateContacts {
fun sendGift(mRoomId:String,giftId: String,mUserId:String,imageView: ImageView) fun sendGift(mRoomId:String,giftId: String,mUserId:String,imageView: ImageView)
fun exitRoom(roomId: String?, userId: String?)
fun wallet(list:List<String>) fun wallet(list:List<String>)

View File

@@ -74,7 +74,7 @@ public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFra
private MessageListenerSingleton.PublicScreenMessageListener messageListener; private MessageListenerSingleton.PublicScreenMessageListener messageListener;
private MessageExListenerSingleton.PublicScreenMessageListener messageExListener; private MessageExListenerSingleton.PublicScreenMessageListener messageExListener;
@Setter @Setter
private boolean isPriRoom = false; public boolean isPriRoom = false;
// 在需要的地方调用 Activity 的方法 // 在需要的地方调用 Activity 的方法
public void someMethod() { public void someMethod() {
@@ -176,6 +176,7 @@ public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFra
* 设置消息监听器 * 设置消息监听器
*/ */
public void setupExMessageListener() { public void setupExMessageListener() {
isPriRoom = true;
// 创建并添加监听器 // 创建并添加监听器
messageExListener = message -> { messageExListener = message -> {
// 确保在主线程更新 UI // 确保在主线程更新 UI
@@ -472,11 +473,11 @@ public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFra
if (message.getRoomId() == null) { if (message.getRoomId() == null) {
return; return;
} }
if (!isPriRoom){
if (roomId == null || (!message.getRoomId().contains(roomId) && message.getMsgType() != 125)) { if (roomId == null || (!message.getRoomId().contains(roomId) && message.getMsgType() != 125)) {
return; return;
}
} }
// 使用Handler将消息处理放到消息队列中避免阻塞 // 使用Handler将消息处理放到消息队列中避免阻塞
synchronized (queueLock) { synchronized (queueLock) {
if (messageHandler.hasMessages(MSG_HANDLE_ROOM_MESSAGE)) { if (messageHandler.hasMessages(MSG_HANDLE_ROOM_MESSAGE)) {

View File

@@ -8,9 +8,12 @@ import android.view.View
import android.view.animation.LinearInterpolator import android.view.animation.LinearInterpolator
import android.widget.ImageView import android.widget.ImageView
import com.blankj.utilcode.util.ActivityUtils import com.blankj.utilcode.util.ActivityUtils
import com.blankj.utilcode.util.LogUtils
import com.blankj.utilcode.util.TimeUtils
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.orhanobut.logger.Logger import com.orhanobut.logger.Logger
import com.xscm.modulemain.R import com.xscm.modulemain.R
import com.xscm.modulemain.activity.room.activity.RoomActivity
import com.xscm.modulemain.activity.room.contacts.PrivateContacts import com.xscm.modulemain.activity.room.contacts.PrivateContacts
import com.xscm.modulemain.activity.room.presenter.PrivatePresenter import com.xscm.modulemain.activity.room.presenter.PrivatePresenter
import com.xscm.modulemain.databinding.FragmentRoomPrivateBinding import com.xscm.modulemain.databinding.FragmentRoomPrivateBinding
@@ -26,8 +29,10 @@ import com.xscm.moduleutil.listener.MessageExListenerSingleton
import com.xscm.moduleutil.listener.MessageListenerSingleton import com.xscm.moduleutil.listener.MessageListenerSingleton
import io.reactivex.Observable import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import java.util.Date
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
class RoomPrivateFragment(var mRoomInfoResp: RoomInfoResp?) : class RoomPrivateFragment(var mRoomInfoResp: RoomInfoResp?) :
BaseMvpFragment<PrivatePresenter, FragmentRoomPrivateBinding>(), PrivateContacts.View { BaseMvpFragment<PrivatePresenter, FragmentRoomPrivateBinding>(), PrivateContacts.View {
@@ -83,7 +88,7 @@ class RoomPrivateFragment(var mRoomInfoResp: RoomInfoResp?) :
mBinding?.tvBack?.setOnClickListener { mBinding?.tvBack?.setOnClickListener {
//返回到上一个房间 //返回到上一个房间
MvpPre?.exitRoom(mRoomId,mUserInfo?.user_id.toString())
} }
// 定义两个 RoomPitBean 对象,分别用于显示在 roomMakeWheat1 和 roomMakeWheat2 // 定义两个 RoomPitBean 对象,分别用于显示在 roomMakeWheat1 和 roomMakeWheat2
@@ -232,6 +237,18 @@ class RoomPrivateFragment(var mRoomInfoResp: RoomInfoResp?) :
} }
} }
override fun exitRoom() {
if (activity is RoomActivity) {
LogUtils.e(
"lxj",
("退出房间时间:" + TimeUtils.date2String(Date())).toString() + ":退出的roomId" + mRoomId
)
MessageExListenerSingleton.quitGroup(mRoomId)
(activity as RoomActivity).quit()
(activity as RoomActivity).jiaR()
}
}
fun startSmallFloatingAnimation(view: View, floatRangeDp: Float = 10f) { fun startSmallFloatingAnimation(view: View, floatRangeDp: Float = 10f) {
// 1. 计算飘动范围(默认 ±10dp可调整 // 1. 计算飘动范围(默认 ±10dp可调整

View File

@@ -168,7 +168,6 @@ class RoomPubFragment(var mRoomInfoResp: RoomInfoResp?) :
view.pitBean.user_id, view.pitBean.user_id,
mRoomId mRoomId
).show() ).show()
} }
} }

View File

@@ -2,16 +2,13 @@ package com.xscm.modulemain.activity.room.presenter
import android.content.Context import android.content.Context
import android.widget.ImageView import android.widget.ImageView
import com.xscm.modulemain.activity.room.contacts.MentorShipContacts
import com.xscm.modulemain.activity.room.contacts.PrivateContacts import com.xscm.modulemain.activity.room.contacts.PrivateContacts
import com.xscm.modulemain.activity.room.contacts.PubContacts
import com.xscm.moduleutil.bean.RoomGiftData import com.xscm.moduleutil.bean.RoomGiftData
import com.xscm.moduleutil.bean.RoonGiftModel import com.xscm.moduleutil.bean.RoonGiftModel
import com.xscm.moduleutil.bean.WalletBean import com.xscm.moduleutil.bean.WalletBean
import com.xscm.moduleutil.http.BaseObserver import com.xscm.moduleutil.http.BaseObserver
import com.xscm.moduleutil.http.RetrofitClient import com.xscm.moduleutil.http.RetrofitClient
import com.xscm.moduleutil.presenter.BasePresenter import com.xscm.moduleutil.presenter.BasePresenter
import com.xscm.moduleutil.presenter.RewardGiftContacts
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
import java.lang.ref.WeakReference import java.lang.ref.WeakReference
@@ -63,6 +60,21 @@ class PrivatePresenter(context: Context, val view: PrivateContacts.View?) :
}) })
} }
override fun exitRoom(roomId: String?, userId: String?) {
RetrofitClient.getInstance().quitRoom(roomId, userId, object : BaseObserver<String?>() {
override fun onSubscribe(d: Disposable) {
addDisposable(d)
}
override fun onNext(string: String) {
if (MvpRef == null) {
MvpRef = WeakReference<PrivateContacts.View>(view)
}
MvpRef.get()?.exitRoom()
}
})
}
override fun wallet(list:List<String>) { override fun wallet(list:List<String>) {
RetrofitClient.getInstance().wallet(object : BaseObserver<WalletBean?>() { RetrofitClient.getInstance().wallet(object : BaseObserver<WalletBean?>() {

View File

@@ -83,16 +83,16 @@ class RoomPubWheatView : BaseWheatView {
"9" -> { "9" -> {
iv_tag_type?.visibility = View.VISIBLE iv_tag_type?.visibility = View.VISIBLE
iv_tag_type?.setImageResource(com.xscm.moduleutil.R.mipmap.zc) iv_tag_type?.setImageResource(com.xscm.moduleutil.R.mipmap.zc)
tv_time?.visibility = View.GONE tv_time?.visibility = View.INVISIBLE
ll_bottom?.visibility = View.GONE ll_bottom?.visibility = View.INVISIBLE
iv_custom_gift?.visibility = View.GONE iv_custom_gift?.visibility = View.GONE
} }
"10" -> { "10" -> {
iv_tag_type?.visibility = View.VISIBLE iv_tag_type?.visibility = View.VISIBLE
iv_tag_type?.setImageResource(com.xscm.moduleutil.R.mipmap.jb) iv_tag_type?.setImageResource(com.xscm.moduleutil.R.mipmap.jb)
tv_time?.visibility = View.GONE tv_time?.visibility = View.INVISIBLE
ll_bottom?.visibility = View.GONE ll_bottom?.visibility = View.INVISIBLE
iv_custom_gift?.visibility = View.GONE iv_custom_gift?.visibility = View.GONE
} }

View File

@@ -53,6 +53,20 @@
android:orientation="vertical" android:orientation="vertical"
app:layout_constraintGuide_percent="0.2" /> app:layout_constraintGuide_percent="0.2" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guide_line_left_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.35" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guide_line_right_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.7" />
<androidx.constraintlayout.widget.Guideline <androidx.constraintlayout.widget.Guideline
android:id="@+id/guide_line_right" android:id="@+id/guide_line_right"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@@ -62,22 +76,22 @@
<com.xscm.modulemain.widget.RoomPubWheatView <com.xscm.modulemain.widget.RoomPubWheatView
android:id="@+id/rpwv_top_left" android:id="@+id/rpwv_top_left"
android:layout_width="@dimen/dp_90" android:layout_width="@dimen/dp_140"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginTop="@dimen/dp_10" android:layout_marginTop="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_20" app:layout_constraintDimensionRatio="1:0.68"
app:layout_constraintDimensionRatio="1:1.11" app:layout_constraintStart_toStartOf="@id/guide_line_left_2"
app:layout_constraintEnd_toEndOf="@id/guide_line_midd" app:layout_constraintEnd_toEndOf="@id/guide_line_left_2"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<com.xscm.modulemain.widget.RoomPubWheatView <com.xscm.modulemain.widget.RoomPubWheatView
android:id="@+id/rpwv_top_right" android:id="@+id/rpwv_top_right"
android:layout_width="@dimen/dp_90" android:layout_width="@dimen/dp_140"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginStart="@dimen/dp_20"
android:layout_marginTop="@dimen/dp_10" android:layout_marginTop="@dimen/dp_10"
app:layout_constraintDimensionRatio="1:1.11" app:layout_constraintDimensionRatio="1:0.68"
app:layout_constraintStart_toStartOf="@id/guide_line_midd" app:layout_constraintStart_toStartOf="@id/guide_line_right_2"
app:layout_constraintEnd_toEndOf="@id/guide_line_right_2"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@@ -91,9 +105,9 @@
<com.xscm.modulemain.widget.RoomPubWheatView <com.xscm.modulemain.widget.RoomPubWheatView
android:id="@+id/rpwv_1" android:id="@+id/rpwv_1"
android:layout_width="@dimen/dp_95" android:layout_width="@dimen/dp_140"
android:layout_height="0dp" android:layout_height="0dp"
app:layout_constraintDimensionRatio="1:1" app:layout_constraintDimensionRatio="1:0.68"
app:layout_constraintEnd_toEndOf="@id/guide_line_left" app:layout_constraintEnd_toEndOf="@id/guide_line_left"
app:layout_constraintStart_toStartOf="@id/guide_line_left" app:layout_constraintStart_toStartOf="@id/guide_line_left"
app:layout_constraintTop_toTopOf="@id/guide_line_content_top" /> app:layout_constraintTop_toTopOf="@id/guide_line_content_top" />
@@ -101,10 +115,10 @@
<com.xscm.modulemain.widget.RoomPubWheatView <com.xscm.modulemain.widget.RoomPubWheatView
android:id="@+id/rpwv_4" android:id="@+id/rpwv_4"
android:layout_width="@dimen/dp_95" android:layout_width="@dimen/dp_140"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginTop="@dimen/dp_10" android:layout_marginTop="@dimen/dp_10"
app:layout_constraintDimensionRatio="1:1" app:layout_constraintDimensionRatio="1:0.68"
app:layout_constraintEnd_toEndOf="@id/guide_line_left" app:layout_constraintEnd_toEndOf="@id/guide_line_left"
app:layout_constraintStart_toStartOf="@id/guide_line_left" app:layout_constraintStart_toStartOf="@id/guide_line_left"
app:layout_constraintTop_toBottomOf="@id/rpwv_1" /> app:layout_constraintTop_toBottomOf="@id/rpwv_1" />
@@ -112,9 +126,9 @@
<com.xscm.modulemain.widget.RoomPubWheatView <com.xscm.modulemain.widget.RoomPubWheatView
android:id="@+id/rpwv_2" android:id="@+id/rpwv_2"
android:layout_width="@dimen/dp_95" android:layout_width="@dimen/dp_140"
android:layout_height="0dp" android:layout_height="0dp"
app:layout_constraintDimensionRatio="1:1" app:layout_constraintDimensionRatio="1:0.68"
app:layout_constraintEnd_toEndOf="@id/guide_line_midd" app:layout_constraintEnd_toEndOf="@id/guide_line_midd"
app:layout_constraintStart_toStartOf="@id/guide_line_midd" app:layout_constraintStart_toStartOf="@id/guide_line_midd"
app:layout_constraintTop_toTopOf="@id/guide_line_content_top" /> app:layout_constraintTop_toTopOf="@id/guide_line_content_top" />
@@ -122,10 +136,10 @@
<com.xscm.modulemain.widget.RoomPubWheatView <com.xscm.modulemain.widget.RoomPubWheatView
android:id="@+id/rpwv_5" android:id="@+id/rpwv_5"
android:layout_width="@dimen/dp_95" android:layout_width="@dimen/dp_140"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginTop="@dimen/dp_10" android:layout_marginTop="@dimen/dp_10"
app:layout_constraintDimensionRatio="1:1" app:layout_constraintDimensionRatio="1:0.68"
app:layout_constraintEnd_toEndOf="@id/guide_line_midd" app:layout_constraintEnd_toEndOf="@id/guide_line_midd"
app:layout_constraintStart_toStartOf="@id/guide_line_midd" app:layout_constraintStart_toStartOf="@id/guide_line_midd"
app:layout_constraintTop_toBottomOf="@id/rpwv_2" /> app:layout_constraintTop_toBottomOf="@id/rpwv_2" />
@@ -133,9 +147,9 @@
<com.xscm.modulemain.widget.RoomPubWheatView <com.xscm.modulemain.widget.RoomPubWheatView
android:id="@+id/rpwv_3" android:id="@+id/rpwv_3"
android:layout_width="@dimen/dp_95" android:layout_width="@dimen/dp_140"
android:layout_height="0dp" android:layout_height="0dp"
app:layout_constraintDimensionRatio="1:1" app:layout_constraintDimensionRatio="1:0.68"
app:layout_constraintEnd_toEndOf="@id/guide_line_right" app:layout_constraintEnd_toEndOf="@id/guide_line_right"
app:layout_constraintStart_toStartOf="@id/guide_line_right" app:layout_constraintStart_toStartOf="@id/guide_line_right"
app:layout_constraintTop_toTopOf="@id/guide_line_content_top" /> app:layout_constraintTop_toTopOf="@id/guide_line_content_top" />
@@ -143,10 +157,10 @@
<com.xscm.modulemain.widget.RoomPubWheatView <com.xscm.modulemain.widget.RoomPubWheatView
android:id="@+id/rpwv_6" android:id="@+id/rpwv_6"
android:layout_width="@dimen/dp_95" android:layout_width="@dimen/dp_140"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginTop="@dimen/dp_10" android:layout_marginTop="@dimen/dp_10"
app:layout_constraintDimensionRatio="1:1" app:layout_constraintDimensionRatio="1:0.68"
app:layout_constraintEnd_toEndOf="@id/guide_line_right" app:layout_constraintEnd_toEndOf="@id/guide_line_right"
app:layout_constraintStart_toStartOf="@id/guide_line_right" app:layout_constraintStart_toStartOf="@id/guide_line_right"
app:layout_constraintTop_toBottomOf="@id/rpwv_3" /> app:layout_constraintTop_toBottomOf="@id/rpwv_3" />

View File

@@ -98,18 +98,18 @@
<com.xscm.modulemain.widget.RoomPrivateWheatView <com.xscm.modulemain.widget.RoomPrivateWheatView
android:id="@+id/rpwv_1" android:id="@+id/rpwv_1"
android:layout_width="@dimen/dp_95" android:layout_width="@dimen/dp_140"
android:layout_height="0dp" android:layout_height="0dp"
app:layout_constraintDimensionRatio="1:1.11" app:layout_constraintDimensionRatio="1:0.68"
app:layout_constraintEnd_toEndOf="@id/guide_line_left_2" app:layout_constraintEnd_toEndOf="@id/guide_line_left_2"
app:layout_constraintStart_toStartOf="@id/guide_line_left_2" app:layout_constraintStart_toStartOf="@id/guide_line_left_2"
app:layout_constraintTop_toTopOf="@id/guide_line_h_2" /> app:layout_constraintTop_toTopOf="@id/guide_line_h_2" />
<com.xscm.modulemain.widget.RoomPrivateWheatView <com.xscm.modulemain.widget.RoomPrivateWheatView
android:id="@+id/rpwv_2" android:id="@+id/rpwv_2"
android:layout_width="@dimen/dp_95" android:layout_width="@dimen/dp_140"
android:layout_height="0dp" android:layout_height="0dp"
app:layout_constraintDimensionRatio="1:1.11" app:layout_constraintDimensionRatio="1:0.68"
app:layout_constraintEnd_toEndOf="@id/guide_line_right_2" app:layout_constraintEnd_toEndOf="@id/guide_line_right_2"
app:layout_constraintStart_toStartOf="@id/guide_line_right_2" app:layout_constraintStart_toStartOf="@id/guide_line_right_2"
app:layout_constraintTop_toTopOf="@id/guide_line_h_2" /> app:layout_constraintTop_toTopOf="@id/guide_line_h_2" />

View File

@@ -45,49 +45,32 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="0.62" /> app:layout_constraintWidth_percent="0.42" />
<!-- 用户头像 --> <!-- 用户头像 -->
<com.xscm.moduleutil.widget.CircularImage <com.xscm.moduleutil.widget.CircularImage
android:id="@+id/riv" android:id="@+id/riv"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:scaleType="fitCenter" android:scaleType="centerCrop"
android:src="@mipmap/room_ic_wheat_default" android:src="@mipmap/room_ic_wheat_default"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintDimensionRatio="1:1" app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="0.6" /> app:layout_constraintWidth_percent="0.4" />
<com.xscm.moduleutil.widget.AvatarFrameView
android:id="@+id/iv_gift"
android:layout_width="0dp"
android:layout_height="0dp"
android:scaleType="fitCenter"
android:visibility="gone"
android:src="@mipmap/room_ic_wheat_default"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="0.6" />
<!-- 头像框 - 包裹头像 --> <!-- 头像框 - 包裹头像 -->
<com.xscm.moduleutil.widget.AvatarFrameView <com.xscm.moduleutil.widget.AvatarFrameView
android:id="@+id/iv_frame" android:id="@+id/iv_frame"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:visibility="visible" android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintDimensionRatio="1:1" app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="0.7" app:layout_constraintWidth_percent="0.5"
tools:visibility="visible" /> tools:visibility="visible" />
<!-- 离线状态 - 与头像框同样大小 --> <!-- 离线状态 - 与头像框同样大小 -->
@@ -118,7 +101,7 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="0.7" app:layout_constraintWidth_percent="0.5"
app:loopCount="0" app:loopCount="0"
app:source="mic.svga" /> app:source="mic.svga" />
<!-- 角色标签 - 头像下方覆盖部分头像 --> <!-- 角色标签 - 头像下方覆盖部分头像 -->
@@ -228,7 +211,7 @@
android:visibility="visible" android:visibility="visible"
app:layout_constraintTop_toTopOf="@id/ctl_heat" app:layout_constraintTop_toTopOf="@id/ctl_heat"
app:layout_constraintBottom_toBottomOf="@id/ctl_heat" app:layout_constraintBottom_toBottomOf="@id/ctl_heat"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="@id/gl_gift_line"
android:src="@mipmap/icon_pub_gift_bg" android:src="@mipmap/icon_pub_gift_bg"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content"/> android:layout_height="wrap_content"/>
@@ -261,6 +244,23 @@
</LinearLayout> </LinearLayout>
<com.xscm.moduleutil.widget.AvatarFrameView
android:id="@+id/iv_gift"
android:layout_width="0dp"
android:layout_height="0dp"
android:visibility="gone"
android:src="@mipmap/icon_pri_bg"
android:layout_marginEnd="-5dp"
android:clipChildren="false"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintDimensionRatio="1:1.8"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="0.6"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintHorizontal_bias="1.1"/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>