个播UI修改,增加个播房主麦位光圈svga

This commit is contained in:
huangjian
2022-01-13 18:08:10 +08:00
parent 0274a49efe
commit b2af96390d
13 changed files with 253 additions and 272 deletions

Binary file not shown.

View File

@@ -741,24 +741,6 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
toast(error);
}
private void onGiftOutOfDate() {
toast("该礼物已过期");
}
public void onNeedRecharge() {
getDialogManager().showOkCancelDialog("余额不足,是否充值", true,
new DialogManager.AbsOkDialogListener() {
@Override
public void onOk() {
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_NOT_ENOUGH_TO_RECHARGE,
"余额不足_去充值:送礼物");
ChargeActivity.start(AVRoomActivity.this);
}
});
}
public void toBack() {
toBack(false);
}

View File

@@ -34,7 +34,6 @@ class SingleAnchorMicroViewAdapter(context: Context?) : BaseMicroViewAdapter(con
return if (position == 0) 3 else 1
}
}
recyclerView.setPadding(0, ScreenUtil.dip2px(35f), 0, 0)
recyclerView.layoutManager = layoutManager
recyclerView.adapter = this
}
@@ -64,8 +63,8 @@ class SingleAnchorMicroViewAdapter(context: Context?) : BaseMicroViewAdapter(con
@SuppressLint("SetTextI18n")
public override fun bind(info: RoomQueueInfo, position: Int) {
itemView.updateLayoutParams {
width = (ScreenUtil.screenWidth * 0.25f).toInt()
height = (ScreenUtil.screenWidth * 0.19f).toInt()
width = (ScreenUtil.screenWidth * 0.25f + 0.5f).toInt()
height = (ScreenUtil.screenWidth * 0.19f + 0.5f).toInt()
}
super.bind(info, position)
info.mChatRoomMember ?: run {
@@ -88,8 +87,8 @@ class SingleAnchorMicroViewAdapter(context: Context?) : BaseMicroViewAdapter(con
public override fun bind(info: RoomQueueInfo, position: Int) {
itemView.updateLayoutParams {
width = (ScreenUtil.screenWidth * 0.75f).toInt()
height = (ScreenUtil.screenWidth * 0.57f).toInt()
width = (ScreenUtil.screenWidth * 0.75f + 0.5f).toInt()
height = (ScreenUtil.screenWidth * 0.57f + 0.5f).toInt()
}
itemView.findViewById<SVGAImageView>(R.id.svga_head_wear)?.let {
it.visibility = View.VISIBLE

View File

@@ -17,8 +17,13 @@ import android.view.ViewStub
import android.widget.EditText
import android.widget.ImageView
import android.widget.RelativeLayout
import android.widget.TextView
import androidx.annotation.CallSuper
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.netease.nim.uikit.common.antispam.AntiSpamEvent
import com.netease.nimlib.sdk.StatusCode
import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder
@@ -38,6 +43,7 @@ import com.yizhuan.erban.avroom.adapter.OnMicroItemClickListener
import com.yizhuan.erban.avroom.dialog.AttentionHintDialog
import com.yizhuan.erban.avroom.dialog.DatingVipRuleDialog
import com.yizhuan.erban.avroom.dialog.RoomOperationDialog
import com.yizhuan.erban.avroom.firstcharge.FirstChargeDialog
import com.yizhuan.erban.avroom.presenter.BaseRoomPresenter
import com.yizhuan.erban.avroom.redpackage.RedPackageSendDialog
import com.yizhuan.erban.avroom.view.IBaseRoomView
@@ -50,6 +56,7 @@ import com.yizhuan.erban.event.OpenRoomIntroEvent
import com.yizhuan.erban.friend.view.SelectFriendActivity
import com.yizhuan.erban.home.adapter.RoomActAdapter
import com.yizhuan.erban.home.adapter.RoomActAdapter.RoomActClickListener
import com.yizhuan.erban.treasure_box.widget.GoldBoxHelper
import com.yizhuan.erban.ui.webview.DialogWebViewActivity
import com.yizhuan.erban.ui.widget.ButtonItem
import com.yizhuan.erban.ui.widget.GiftDialog
@@ -66,6 +73,7 @@ import com.yizhuan.tutu.music.widget.MusicPlayerView
import com.yizhuan.tutu.room_chat.activity.RoomMsgActivity
import com.yizhuan.xchat_android_constants.XChatConstants
import com.yizhuan.xchat_android_core.Constants
import com.yizhuan.xchat_android_core.DemoCache
import com.yizhuan.xchat_android_core.UriProvider
import com.yizhuan.xchat_android_core.auth.AuthModel
import com.yizhuan.xchat_android_core.bean.RoomMicInfo
@@ -96,6 +104,7 @@ import com.yizhuan.xchat_android_core.super_admin.util.SuperAdminUtil
import com.yizhuan.xchat_android_core.user.UserModel
import com.yizhuan.xchat_android_core.user.bean.BaseInfo
import com.yizhuan.xchat_android_core.user.bean.UserInfo
import com.yizhuan.xchat_android_core.utils.CurrentTimeUtils
import com.yizhuan.xchat_android_core.utils.net.VipLevelNotEnoughException
import com.yizhuan.xchat_android_library.net.rxnet.utils.RxNetWorkUtils
import com.yizhuan.xchat_android_library.rxbus.RxBus
@@ -137,6 +146,11 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
@JvmField
protected var isDatingMode = false
/**
* 快捷发言
*/
private var lastSendTime: Long = 0
/**
* 是否开启礼物值显示
@@ -631,10 +645,13 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
.onEvent(StatisticsProtocol.Event.EVENT_MP_ROOM_RANKING_LIST_CLICK, "房间榜")
}
R.id.tv_room_introduction -> showRoomIntroduction(AvRoomDataManager.get().isRoomOwner || AvRoomDataManager.get().isRoomAdmin)
R.id.iv_first_charge_enter -> FirstChargeDialog.start(mContext)
R.id.iv_treasure_box,
R.id.iv_treasure_box_cp -> GoldBoxHelper.handleBoxClick(mContext)
}
}
fun sendMsg() {
private fun sendMsg() {
sendMsg(inputEdit.text.toString())
}
@@ -1050,6 +1067,50 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
}
}
fun initSpeedyMessage(speedyMessageContainer: View) {
val rvSpeedyMessage =
speedyMessageContainer.findViewById<RecyclerView>(R.id.rv_speedy_message)
val phrases = AvRoomDataManager.get().phrases
if (ListUtils.isListEmpty(phrases) || !TimeUtils.isTomorrow(DemoCache.readSpeedyMessageGoneTime())) {
speedyMessageContainer.visibility = View.GONE
return
}
val adapter: BaseQuickAdapter<String, BaseViewHolder> =
object : BaseQuickAdapter<String, BaseViewHolder>(R.layout.item_speedy_message) {
override fun convert(helper: BaseViewHolder, item: String) {
(helper.itemView as TextView).text = item
}
}
rvSpeedyMessage.adapter = adapter
rvSpeedyMessage.layoutManager = LinearLayoutManager(
mContext,
LinearLayoutManager.HORIZONTAL,
false
)
adapter.setNewData(phrases)
adapter.setOnItemClickListener { _: BaseQuickAdapter<*, *>?, _: View?, position: Int ->
if (CurrentTimeUtils.getCurrentTime() - lastSendTime > 10000) {
sendMsg(phrases[position])
lastSendTime = CurrentTimeUtils.getCurrentTime()
StatisticManager.Instance()
.onEvent(StatisticsProtocol.Event.EVENT_ROOM_QUICKCHAT_CLICK, "语音房_快捷发言")
} else {
val roomInfo =
AvRoomDataManager.get().mCurrentRoomInfo ?: return@setOnItemClickListener
if (roomInfo.isCloseScreen) {
toast("房间公屏已关闭")
return@setOnItemClickListener
}
SingleToastUtil.showToast("你发送的太频繁啦,请稍后再试")
}
}
speedyMessageContainer.findViewById<View>(R.id.iv_close_speedy_message).setOnClickListener {
speedyMessageContainer.visibility = View.GONE
DemoCache.saveSpeedyMessageGoneTime(System.currentTimeMillis())
}
}
override fun showMessageHistory(messages: List<ChatRoomMessage>?) {
messageView.addHistoryMessages(messages)
}

View File

@@ -287,6 +287,7 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
return currentRoomInfo != null &&
AvRoomDataManager.get().isRoomOwner() &&
currentRoomInfo.getIsPermitRoom() != 1 &&
currentRoomInfo.getType() != RoomInfo.ROOM_TYPE_SINGLE &&
(currentRoomInfo.getRoomModeType() == RoomModeType.NORMAL_MODE ||
currentRoomInfo.getRoomModeType() == 2 ||
currentRoomInfo.getRoomModeType() == 4);

View File

@@ -1,18 +1,12 @@
package com.yizhuan.erban.avroom.fragment;
import static com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol.Event.EVENT_ROOM_QUICKCHAT_CLICK;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.TextView;
import androidx.databinding.DataBindingUtil;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.netease.nim.uikit.common.util.log.LogUtil;
import com.netease.nim.uikit.support.glide.GlideApp;
import com.trello.rxlifecycle3.android.FragmentEvent;
@@ -44,7 +38,6 @@ import com.yizhuan.erban.treasure_box.widget.GoldBoxHelper;
import com.yizhuan.erban.ui.webview.DatingRuleWebViewActivity;
import com.yizhuan.erban.utils.UserUtils;
import com.yizhuan.xchat_android_core.Constants;
import com.yizhuan.xchat_android_core.DemoCache;
import com.yizhuan.xchat_android_core.UriProvider;
import com.yizhuan.xchat_android_core.auth.AuthModel;
import com.yizhuan.xchat_android_core.home.bean.BannerInfo;
@@ -68,14 +61,10 @@ import com.yizhuan.xchat_android_core.room.pk.model.PkModel;
import com.yizhuan.xchat_android_core.room.queuing_mic.bean.RespQueuingMicListInfo;
import com.yizhuan.xchat_android_core.room.queuing_mic.event.QueuingMicEmptyEvent;
import com.yizhuan.xchat_android_core.room.queuing_mic.event.QueuingMicNotEmptyEvent;
import com.yizhuan.xchat_android_core.statistic.StatisticManager;
import com.yizhuan.xchat_android_core.super_admin.util.SuperAdminUtil;
import com.yizhuan.xchat_android_core.user.UserModel;
import com.yizhuan.xchat_android_core.utils.CurrentTimeUtils;
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
import com.yizhuan.xchat_android_library.utils.ListUtils;
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
import com.yizhuan.xchat_android_library.utils.TimeUtils;
import com.yizhuan.xchat_android_library.utils.UIUtils;
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
@@ -110,11 +99,6 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
private MicQueueDialog micQueueDialog;
private PKMicQueueDialog pkMicQueueDialog;
/**
* 快捷发言
*/
private long lastSendTime;
public static HomePartyRoomFragment newInstance(boolean isRoomMin) {
HomePartyRoomFragment roomFragment = new HomePartyRoomFragment();
Bundle bundle = new Bundle();
@@ -155,7 +139,7 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
myUid = AuthModel.get().getCurrentUid();
gameBinding.setRoomInfo(AvRoomDataManager.get().mCurrentRoomInfo);
hideKtvRelaView();
initSpeedyMessage();
initSpeedyMessage(gameBinding.flSpeedyMessage);
updateQueuingMicBtn();
updatePkScoreBoard();
getMvpPresenter().getBannerList();
@@ -401,44 +385,6 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
setDragonView();
}
private void initSpeedyMessage() {
List<String> phrases = AvRoomDataManager.get().phrases;
if (ListUtils.isListEmpty(phrases) || !TimeUtils.isTomorrow(DemoCache.readSpeedyMessageGoneTime())) {
gameBinding.flSpeedyMessage.setVisibility(View.GONE);
return;
}
BaseQuickAdapter<String, BaseViewHolder> adapter = new BaseQuickAdapter<String, BaseViewHolder>(R.layout.item_speedy_message) {
@Override
protected void convert(BaseViewHolder helper, String item) {
((TextView) helper.itemView).setText(item);
}
};
gameBinding.rvSpeedyMessage.setAdapter(adapter);
gameBinding.rvSpeedyMessage.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false));
adapter.setNewData(phrases);
adapter.setOnItemClickListener((adapter1, view, position) -> {
if (CurrentTimeUtils.getCurrentTime() - lastSendTime > 10000) {
sendMsg(phrases.get(position));
lastSendTime = CurrentTimeUtils.getCurrentTime();
StatisticManager.Instance().onEvent(EVENT_ROOM_QUICKCHAT_CLICK, "语音房_快捷发言");
} else {
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
if (roomInfo == null) {
return;
}
if (roomInfo.isCloseScreen()) {
toast("房间公屏已关闭");
return;
}
SingleToastUtil.showToast("你发送的太频繁啦,请稍后再试");
}
});
gameBinding.ivCloseSpeedyMessage.setOnClickListener(v -> {
gameBinding.flSpeedyMessage.setVisibility(View.GONE);
DemoCache.saveSpeedyMessageGoneTime(System.currentTimeMillis());
});
}
private void cleanDragonBar() {
LogUtil.e("cleanDragonBar");
@@ -623,10 +569,6 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
}
}
break;
case R.id.iv_treasure_box:
case R.id.iv_treasure_box_cp:
onClickBox();
break;
case R.id.iv_queuing_micro:
gameBinding.bottomView.onClick(v);
break;
@@ -649,20 +591,11 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
case R.id.stv_ktv_song:
KtvSongListActivity.start(mContext, false);
break;
case R.id.iv_first_charge_enter:
FirstChargeDialog.start(mContext);
break;
default:
break;
}
}
/**
* 房间许愿池
*/
public void onClickBox() {
GoldBoxHelper.handleBoxClick(mContext);
}
@SuppressLint("CheckResult")
private void playDragon() {
List<FaceInfo> faceInfos = DynamicFaceModel.get().getFaceInfos();

View File

@@ -5,41 +5,27 @@ import android.os.Bundle
import android.view.View
import androidx.core.view.isVisible
import androidx.databinding.DataBindingUtil
import com.orhanobut.logger.Logger
import com.yizhuan.erban.R
import com.yizhuan.erban.avroom.adapter.OnMicroItemClickListener
import com.yizhuan.erban.avroom.adapter.SingleAnchorMicroViewAdapter
import com.yizhuan.erban.avroom.anotherroompk.RoomPkFinishDialog
import com.yizhuan.erban.avroom.anotherroompk.RoomPkFinishDialog.Companion.newInstance
import com.yizhuan.erban.avroom.anotherroompk.RoomPkForceFinishDialog
import com.yizhuan.erban.avroom.anotherroompk.RoomPkForceFinishDialog.Companion.newInstance
import com.yizhuan.erban.avroom.anotherroompk.RoomPkReceivedDialog
import com.yizhuan.erban.avroom.anotherroompk.RoomPkReceivedDialog.Companion.newInstance
import com.yizhuan.erban.avroom.dialog.PKScoreBoardDialog
import com.yizhuan.erban.avroom.dialog.RequestUpMicDialog
import com.yizhuan.erban.avroom.firstcharge.FirstChargePrizeDialog
import com.yizhuan.erban.avroom.presenter.SingleRoomPresenter
import com.yizhuan.erban.avroom.view.ISingleRoomView
import com.yizhuan.erban.databinding.FragmentSingleRoomBinding
import com.yizhuan.erban.treasure_box.widget.GoldBoxHelper
import com.yizhuan.erban.ui.utils.load
import com.yizhuan.erban.ui.webview.DialogWebViewActivity
import com.yizhuan.xchat_android_core.Constants
import com.yizhuan.xchat_android_core.UriProvider
import com.yizhuan.xchat_android_core.auth.AuthModel
import com.yizhuan.xchat_android_core.bean.RoomQueueInfo
import com.yizhuan.xchat_android_core.home.bean.BannerInfo
import com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment
import com.yizhuan.xchat_android_core.im.custom.bean.RequestUpmicAttachment
import com.yizhuan.xchat_android_core.im.custom.bean.RoomPKAttachment
import com.yizhuan.xchat_android_core.im.custom.bean.RoomPkBean
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager
import com.yizhuan.xchat_android_core.manager.RoomEvent
import com.yizhuan.xchat_android_core.pay.event.FirstChargeEvent
import com.yizhuan.xchat_android_core.room.bean.RoomInfo
import com.yizhuan.xchat_android_core.room.giftvalue.helper.GiftValueFormat
import com.yizhuan.xchat_android_core.room.giftvalue.helper.GiftValueMrg
import com.yizhuan.xchat_android_core.room.model.MicQueueModel
import com.yizhuan.xchat_android_core.room.pk.bean.RoomPkData
import com.yizhuan.xchat_android_core.room.pk.model.PkModel
import com.yizhuan.xchat_android_core.user.UserModel
import com.yizhuan.xchat_android_core.user.bean.UserInfo
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter
import org.greenrobot.eventbus.Subscribe
@@ -53,7 +39,7 @@ import org.greenrobot.eventbus.ThreadMode
*/
@CreatePresenter(SingleRoomPresenter::class)
class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresenter?>(),
View.OnClickListener, ISingleRoomView, OnMicroItemClickListener {
ISingleRoomView, OnMicroItemClickListener {
companion object {
@JvmStatic
@@ -86,6 +72,28 @@ class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresente
gameBinding.microView.bindAdapter(SingleAnchorMicroViewAdapter(context))
super.initiate()
mvpPresenter?.getBannerList()
initSpeedyMessage(gameBinding.flSpeedyMessage)
UserModel.get().currentUserInfo
.compose(bindToLifecycle())
.subscribe { userInfo ->
gameBinding.ivFirstChargeEnter.isVisible = userInfo.isFirstCharge
}
GoldBoxHelper.isHideBox().subscribe(
{
if (it == false) {
gameBinding.ivTreasureBox.visibility = View.VISIBLE
gameBinding.ivTreasureBox.load(
GoldBoxHelper.getBoxIcon(),
defaultRes = R.drawable.icon_room_treasure_box
)
} else {
gameBinding.ivTreasureBox.visibility = View.GONE
}
}
) {
gameBinding.ivTreasureBox.visibility = View.GONE
}
}
override fun onReceiveRoomEvent(roomEvent: RoomEvent?) {
@@ -155,12 +163,11 @@ class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresente
override fun updateView() {
super.updateView()
showSingleRoomGiftValue()
gameBinding.microView.adapter.notifyDataSetChanged()
gameBinding.microView.adapter?.notifyDataSetChanged()
}
override fun onShowBanner(dialogInfos: List<BannerInfo>) {
initRoomAct(gameBinding.activityImg, dialogInfos)
initRoomAct(gameBinding.activityImg, dialogInfos, 10f)
}
@Subscribe(threadMode = ThreadMode.MAIN)
@@ -173,5 +180,4 @@ class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresente
).openDialog()
}
}

View File

@@ -124,8 +124,6 @@ public class MicroView extends FrameLayout implements View.OnLayoutChangeListene
} else if (datingItemDecoration != null) {
recyclerView.removeItemDecoration(datingItemDecoration);
}
//个播房加了个padding,这里清除下
recyclerView.setPadding(0, 0, 0, 0);
adapter.bindToRecyclerView(recyclerView);
adapter.setOnMicroItemClickListener(onMicroItemClickListener);
}
@@ -285,7 +283,8 @@ public class MicroView extends FrameLayout implements View.OnLayoutChangeListene
if (roomQueueInfo == null || roomQueueInfo.mChatRoomMember == null) continue;
String halo = (String) NobleUtil.getResource(NobleResourceType.KEY_HALO, roomQueueInfo.mChatRoomMember);
String micCircle = roomQueueInfo.mChatRoomMember.getMicCircle();
if (TextUtils.isEmpty(micCircle)) {
boolean isSingleAnchor = AvRoomDataManager.get().isSingleRoom() && pos == 0;
if (TextUtils.isEmpty(micCircle) && !isSingleAnchor) {
//光圈的起始位置应该是头像边界,终止位置是头饰边界,头像:头饰=3:4
AnimFactory.getSpeakingAnimation(mContext, speakState.getWidth(), speakState.getHeight(),
NobleUtil.getColor(halo), speakState.getWidth() * 3 / 4)
@@ -313,8 +312,7 @@ public class MicroView extends FrameLayout implements View.OnLayoutChangeListene
} else {
if (speakState.isAnimating()) continue;
try {
speakState.setLoops(1);
SVGAParser.Companion.shareParser().decodeFromURL(new URL(micCircle), new SVGAParser.ParseCompletion() {
SVGAParser.ParseCompletion parseCompletion = new SVGAParser.ParseCompletion() {
@Override
public void onComplete(@NonNull SVGAVideoEntity svgaVideoEntity) {
SVGADrawable drawable = new SVGADrawable(svgaVideoEntity);
@@ -326,8 +324,14 @@ public class MicroView extends FrameLayout implements View.OnLayoutChangeListene
public void onError() {
}
}, null);
};
if (isSingleAnchor) {
speakState.setLoops(-1);
SVGAParser.Companion.shareParser().decodeFromAssets("svga/single_headware.svga", parseCompletion, null);
} else {
speakState.setLoops(1);
SVGAParser.Companion.shareParser().decodeFromURL(new URL(micCircle), parseCompletion, null);
}
} catch (MalformedURLException e) {
e.printStackTrace();
}

View File

@@ -189,23 +189,6 @@
</LinearLayout>
<com.coorchice.library.SuperTextView
android:id="@+id/stv_clock"
android:layout_width="50dp"
android:layout_height="@dimen/dp_14"
android:layout_marginTop="2dp"
android:gravity="center"
android:paddingLeft="@dimen/dp_10"
android:paddingRight="@dimen/dp_10"
android:textColor="@color/white"
android:textSize="10sp"
android:visibility="gone"
app:corner="@dimen/dp_10"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/ll_nick"
app:solid="#33ffffff" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_parent_gift_value"
android:layout_width="0dp"

View File

@@ -4,29 +4,30 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clipChildren="false"
tools:background="@color/color_activity_blue_bg"
>
tools:layout_width="90dp">
<FrameLayout
android:id="@+id/micro_layout"
android:layout_width="52dp"
android:layout_height="52dp"
android:layout_width="53dp"
android:layout_height="53dp"
app:layout_constraintBottom_toTopOf="@id/ll_nick"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
app:layout_constraintStart_toStartOf="parent">
<com.opensource.svgaplayer.SVGAImageView
android:id="@+id/iv_halo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_gravity="center" />
<ImageView
android:id="@+id/up_image"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_margin="@dimen/dp_10"
android:layout_gravity="center"
android:layout_margin="@dimen/dp_10"
android:scaleType="fitXY"
android:src="@drawable/icon_room_single_up_micro" />
@@ -34,8 +35,8 @@
android:id="@+id/lock_image"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_margin="@dimen/dp_10"
android:layout_gravity="center"
android:layout_margin="@dimen/dp_10"
android:scaleType="fitXY"
android:src="@drawable/icon_room_single_lock_micro"
android:visibility="invisible"
@@ -45,24 +46,16 @@
android:id="@+id/avatar"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_margin="@dimen/dp_10"
android:layout_gravity="center"
android:layout_margin="@dimen/dp_10"
android:src="@drawable/default_avatar"
android:visibility="gone"
tools:visibility="visible" />
<ImageView
android:id="@+id/iv_head_wear"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_margin="2dp"
/>
<ImageView
android:id="@+id/mute_image"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_gravity="bottom|end"
android:layout_marginEnd="8dp"
android:layout_marginBottom="@dimen/dp_4"
@@ -78,9 +71,9 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/micro_layout">
app:layout_constraintStart_toStartOf="parent">
<TextView
android:id="@+id/tv_number"
@@ -100,30 +93,12 @@
android:layout_height="wrap_content"
android:drawablePadding="3dp"
android:ellipsize="end"
android:includeFontPadding="false"
android:gravity="center"
android:includeFontPadding="false"
android:maxLines="1"
android:textColor="@color/white"
android:textSize="10sp"
tools:text="狐仙嘎嘎" />
</LinearLayout>
<com.coorchice.library.SuperTextView
android:id="@+id/stv_clock"
android:layout_width="50dp"
android:layout_height="@dimen/dp_14"
android:layout_marginTop="2dp"
android:gravity="center"
android:paddingLeft="@dimen/dp_10"
android:paddingRight="@dimen/dp_10"
android:textColor="@color/white"
android:textSize="10sp"
android:visibility="gone"
app:corner="@dimen/dp_10"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/ll_nick"
app:solid="#33ffffff" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -4,9 +4,10 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipChildren="false"
android:visibility="visible"
tools:layout_width="300dp"
tools:background="@color/color_activity_blue_bg">
tools:background="@color/color_activity_blue_bg"
tools:layout_width="300dp">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/line1"
@@ -15,78 +16,93 @@
android:orientation="vertical"
app:layout_constraintGuide_percent="0.66" />
<FrameLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/micro_layout"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@id/rl_nick"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintWidth_percent="0.6"
app:layout_constraintEnd_toEndOf="@id/line1"
app:layout_constraintStart_toStartOf="@id/line1"
app:layout_constraintTop_toTopOf="parent">
app:layout_constraintWidth_percent="0.6">
<com.opensource.svgaplayer.SVGAImageView
android:id="@+id/iv_halo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center" />
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_percent="1.14"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="1.14" />
<com.opensource.svgaplayer.SVGAImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/svga_head_wear"
app:autoPlay="true"
app:source="svga/single_headware.svga"
app:loopCount="0"
android:layout_width="0dp"
android:layout_height="0dp"
android:visibility="gone"
/>
app:autoPlay="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:loopCount="0"
app:source="svga/single_headware.svga" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/avatar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="@dimen/dp_20"
android:layout_gravity="center"
android:layout_width="0dp"
android:layout_height="0dp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_percent="0.76"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="0.76"
tools:src="@drawable/default_avatar"
tools:visibility="visible" />
<ImageView
android:id="@+id/up_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="@dimen/dp_20"
android:layout_gravity="center"
android:scaleType="fitXY"
android:layout_width="0dp"
android:layout_height="0dp"
android:src="@drawable/icon_room_up_micro_boss"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_percent="0.76"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="0.76"
tools:visibility="gone" />
<ImageView
android:id="@+id/lock_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="@dimen/dp_20"
android:layout_gravity="center"
android:scaleType="fitXY"
android:layout_width="0dp"
android:layout_height="0dp"
android:src="@drawable/icon_room_lock_micro_boss"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_percent="0.76"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="0.76"
tools:visibility="visible" />
<ImageView
android:id="@+id/iv_head_wear"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
tools:visibility="gone" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_bg_leave_mode"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="@dimen/dp_20"
android:layout_gravity="center"
android:layout_width="0dp"
android:layout_height="0dp"
android:src="@drawable/bg_leave_mode"
android:visibility="gone" />
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_percent="0.76"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="0.76" />
<TextView
android:id="@+id/tv_label_leave_mode"
@@ -97,30 +113,26 @@
android:text="离开"
android:textColor="#E6FFFFFF"
android:textSize="16dp"
android:visibility="gone" />
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/mute_image"
android:layout_width="15dp"
android:layout_height="15dp"
android:layout_gravity="bottom|end"
android:layout_marginEnd="30dp"
android:layout_marginBottom="25dp"
android:layout_marginEnd="35dp"
android:layout_marginBottom="30dp"
android:scaleType="fitCenter"
android:src="@drawable/icon_room_mute_micro"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
tools:visibility="visible" />
<ImageView
android:id="@+id/tv_state"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginTop="@dimen/dp_15"
android:layout_marginRight="@dimen/dp_10"
android:src="@drawable/ic_room_leave"
android:visibility="gone" />
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/tv_number"
@@ -143,10 +155,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
app:layout_constraintBottom_toTopOf="@id/desc_layout"
app:layout_constraintEnd_toEndOf="@id/micro_layout"
app:layout_constraintStart_toStartOf="@id/micro_layout"
app:layout_constraintTop_toBottomOf="@id/micro_layout"
app:layout_constraintBottom_toBottomOf="@id/micro_layout">
app:layout_constraintStart_toStartOf="@id/micro_layout">
<LinearLayout
android:id="@+id/ll_nick"
@@ -170,9 +181,9 @@
android:maxLines="1"
android:singleLine="true"
android:text=""
android:textStyle="bold"
android:textColor="@color/white"
android:textSize="14sp"
android:textStyle="bold"
tools:text="我是名字" />
</LinearLayout>
@@ -183,12 +194,11 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="@dimen/dp_10"
android:gravity="center"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/micro_layout"
app:layout_constraintStart_toStartOf="@id/micro_layout"
app:layout_constraintTop_toBottomOf="@id/rl_nick">
app:layout_constraintStart_toStartOf="@id/micro_layout">
<TextView
android:id="@+id/tv_room_type"

View File

@@ -16,6 +16,13 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.yizhuan.erban.avroom.widget.MicroView
android:id="@+id/micro_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="110dp"
tools:background="@color/color_red" />
<LinearLayout
android:id="@+id/contribute_list"
android:layout_width="wrap_content"
@@ -42,28 +49,13 @@
</LinearLayout>
<com.yizhuan.erban.avroom.widget.MicroView
android:id="@+id/micro_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="75dp"
android:layout_marginEnd="10dp" />
<com.yizhuan.erban.avroom.widget.BottomView
android:id="@+id/bottom_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="10dp" />
<TextView
android:id="@+id/tv_single_room_gift_value"
android:layout_width="wrap_content"
android:layout_height="24dp"
android:layout_alignTop="@id/micro_view"
android:layout_marginStart="72dp"
android:layout_marginTop="6dp"
android:layout_marginStart="10dp"
android:layout_alignTop="@id/contribute_list"
android:layout_toEndOf="@id/contribute_list"
android:background="@drawable/shape_bg_of_mic_charm_single_anchor"
android:drawableEnd="@drawable/icon_gift_value"
android:drawablePadding="3dp"
@@ -74,6 +66,40 @@
android:textColor="@color/white"
android:visibility="gone" />
<FrameLayout
android:id="@+id/fl_speedy_message"
android:layout_width="match_parent"
android:layout_height="22dp"
android:layout_above="@+id/bottom_view"
android:layout_marginStart="15dp"
android:layout_marginEnd="@dimen/dp_15"
android:layout_marginBottom="6dp">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_speedy_message"
android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_marginEnd="30dp"
android:clipToPadding="false"
android:scrollbars="none" />
<ImageView
android:id="@+id/iv_close_speedy_message"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="end|center_vertical"
android:scaleType="fitXY"
android:src="@mipmap/ic_speedymsg_close" />
</FrameLayout>
<com.yizhuan.erban.avroom.widget.BottomView
android:id="@+id/bottom_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="10dp" />
<ImageView
android:id="@+id/iv_first_charge_enter"
android:layout_width="65dp"
@@ -89,9 +115,9 @@
<ImageView
android:id="@+id/iv_treasure_box"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_above="@id/bottom_view"
android:layout_width="65dp"
android:layout_height="65dp"
android:layout_above="@id/fl_speedy_message"
android:layout_alignParentEnd="true"
android:layout_marginEnd="15dp"
android:layout_marginBottom="6dp"
@@ -100,24 +126,24 @@
android:visibility="gone"
tools:contentDescription="许愿池" />
<com.yizhuan.erban.avroom.widget.MessageView
android:id="@+id/message_view"
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_above="@id/bottom_view"
android:layout_height="match_parent"
android:layout_above="@+id/fl_speedy_message"
android:layout_below="@id/micro_view"
android:layout_marginStart="12dp"
android:layout_marginTop="@dimen/dp_5"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginEnd="90dp"
android:layout_marginBottom="@dimen/dp_10" />
<com.yizhuan.erban.ui.widget.rollviewpager.RollPagerView
android:id="@+id/activity_img"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_above="@id/bottom_view"
android:layout_width="65dp"
android:layout_height="75dp"
android:layout_below="@id/micro_view"
android:layout_alignParentEnd="true"
android:layout_marginTop="20dp"
android:layout_marginEnd="15dp"
android:layout_marginBottom="8dp"
app:rollviewpager_hint_gravity="center" />
@@ -167,6 +193,7 @@
android:id="@+id/vs_music_player"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="75dp"
android:layout="@layout/avroom_music_player_layout" />
</RelativeLayout>

View File

@@ -23,5 +23,5 @@ only_arm64=false
channel_file=channel.txt
version_name=4.1.0
version_code=410
version_name=4.2.0
version_code=420