update 粉丝团相关

This commit is contained in:
zlzw 2023-07-28 10:01:41 +08:00
parent f29766731c
commit 92d4130c45
29 changed files with 718 additions and 6 deletions

View File

@ -926,7 +926,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
if (!mIsAnchor) { if (!mIsAnchor) {
UserBean u = CommonAppConfig.getInstance().getUserBean(); UserBean u = CommonAppConfig.getInstance().getUserBean();
if (u != null && u.getLevel() < mDanMuLevel) { if (u != null && u.getLevel() < mDanMuLevel) {
ToastUtil.show(String.format(mContext.getString(R.string.live_level_danmu_limit), mDanMuLevel)); ToastUtil.show(String.format(mContext.getString(R.string.live_level_danmu_limit), mDanMuLevel+""));
return; return;
} }
} }
@ -947,7 +947,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
onCoinChanged(coin); onCoinChanged(coin);
} }
String[] data = new String[]{obj.getString("barragetoken")}; String[] data = new String[]{obj.getString("barragetoken")};
SocketRyChatUtil.sendDanmuMessage(mLiveUid, contents); SocketRyChatUtil.sendDanmuMessage(mLiveUid, contents,22);
} else { } else {
ToastUtil.show(msg); ToastUtil.show(msg);
} }

View File

@ -48,6 +48,7 @@ import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.Bus; import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DpUtil; import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.SpUtil; import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.views.weight.ClipPathCircleImage; import com.yunbao.common.views.weight.ClipPathCircleImage;
import com.yunbao.live.R; import com.yunbao.live.R;
import com.yunbao.live.activity.LiveAudienceActivity; import com.yunbao.live.activity.LiveAudienceActivity;
@ -484,6 +485,9 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
} }
} else if (bean.getType() == SYSTEM3_COLOR) { } else if (bean.getType() == SYSTEM3_COLOR) {
mTextView.setText(Html.fromHtml(bean.getContent())); mTextView.setText(Html.fromHtml(bean.getContent()));
if (!StringUtil.isEmpty(bean.getBubble())) {
new LoadDian9TuUtil().loadDian9Tu(mContext, mBg, bean.getBubble(), 1);
}
} else { } else {
if (bean.getBubble() != null && !bean.getBubble().equals("")) { if (bean.getBubble() != null && !bean.getBubble().equals("")) {
//加载.9图聊天气泡 //加载.9图聊天气泡

View File

@ -15,6 +15,7 @@ public class LiveDanMuBean {
private String userNiceName; private String userNiceName;
private String avatar; private String avatar;
private String content; private String content;
private int fensLevel;
public String getUid() { public String getUid() {
return uid; return uid;
@ -64,4 +65,12 @@ public class LiveDanMuBean {
public void setContent(String content) { public void setContent(String content) {
this.content = content; this.content = content;
} }
public int getFensLevel() {
return fensLevel;
}
public void setFensLevel(int fensLevel) {
this.fensLevel = fensLevel;
}
} }

View File

@ -1,10 +1,12 @@
package com.yunbao.live.presenter; package com.yunbao.live.presenter;
import android.content.Context; import android.content.Context;
import android.util.Log;
import android.view.ViewGroup; import android.view.ViewGroup;
import com.yunbao.live.bean.LiveDanMuBean; import com.yunbao.live.bean.LiveDanMuBean;
import com.yunbao.live.views.DanmuViewHolder; import com.yunbao.live.views.DanmuViewHolder;
import com.yunbao.live.views.FansDanmuViewHolder;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
@ -22,6 +24,7 @@ public class LiveDanmuPresenter implements DanmuViewHolder.ActionListener {
private boolean[] mLines;//弹幕的轨道 private boolean[] mLines;//弹幕的轨道
private List<DanmuViewHolder> mList; private List<DanmuViewHolder> mList;
private ConcurrentLinkedQueue<LiveDanMuBean> mQueue; private ConcurrentLinkedQueue<LiveDanMuBean> mQueue;
private static final String TAG = "弹幕";
public LiveDanmuPresenter(Context context, ViewGroup danmuContainer) { public LiveDanmuPresenter(Context context, ViewGroup danmuContainer) {
mContext = context; mContext = context;
@ -56,7 +59,11 @@ public class LiveDanmuPresenter implements DanmuViewHolder.ActionListener {
} }
} }
if (danmuHolder == null) { if (danmuHolder == null) {
danmuHolder = new DanmuViewHolder(mContext, mDanmuContainer); if (bean.getContent().startsWith("#")) {
danmuHolder = new FansDanmuViewHolder(mContext, mDanmuContainer);
} else {
danmuHolder = new DanmuViewHolder(mContext, mDanmuContainer);
}
danmuHolder.setActionListener(this); danmuHolder.setActionListener(this);
mList.add(danmuHolder); mList.add(danmuHolder);
} }

View File

@ -215,6 +215,9 @@ public class SocketRyChatUtil {
* 发送弹幕消息 * 发送弹幕消息
*/ */
public static void sendDanmuMessage(String mLiveUid, String danmuToken) { public static void sendDanmuMessage(String mLiveUid, String danmuToken) {
sendDanmuMessage(mLiveUid,danmuToken,0);
}
public static void sendDanmuMessage(String mLiveUid, String danmuToken,int fansLevel) {
UserBean u = CommonAppConfig.getInstance().getUserBean(); UserBean u = CommonAppConfig.getInstance().getUserBean();
if (u == null) { if (u == null) {
return; return;
@ -227,6 +230,7 @@ public class SocketRyChatUtil {
.param("uname", u.getUserNiceName()) .param("uname", u.getUserNiceName())
.param("uid", u.getId()) .param("uid", u.getId())
.param("uhead", u.getAvatar()) .param("uhead", u.getAvatar())
.param("fansLevel",fansLevel)
.param("ct", danmuToken); .param("ct", danmuToken);
msg.create(); msg.create();
String targetId = "g" + mLiveUid; String targetId = "g" + mLiveUid;

View File

@ -402,6 +402,9 @@ public class SocketRyClient {
liveDanMuBean2.setAvatar(map.getString("uhead")); liveDanMuBean2.setAvatar(map.getString("uhead"));
liveDanMuBean2.setUserNiceName(map.getString("uname")); liveDanMuBean2.setUserNiceName(map.getString("uname"));
liveDanMuBean2.setContent(map.getString("ct")); liveDanMuBean2.setContent(map.getString("ct"));
if(map.containsKey("fansLevel")){
liveDanMuBean2.setFensLevel(map.getInteger("fansLevel"));
}
mListener.onSendDanMu(liveDanMuBean2); mListener.onSendDanMu(liveDanMuBean2);
break; break;
case Constants.SOCKET_LEAVE_ROOM://离开房间 case Constants.SOCKET_LEAVE_ROOM://离开房间

View File

@ -0,0 +1,137 @@
package com.yunbao.live.views;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
import android.content.Context;
import android.graphics.Color;
import android.view.ViewGroup;
import android.view.animation.LinearInterpolator;
import android.widget.ImageView;
import android.widget.TextView;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.bean.LevelBean;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.ScreenDimenUtil;
import com.yunbao.common.views.AbsViewHolder;
import com.yunbao.live.R;
import com.yunbao.live.bean.LiveDanMuBean;
/**
* Created by cxf on 2017/8/25.
* 弹幕
*/
public class FansDanmuViewHolder extends DanmuViewHolder {
private static final float SPEED = 0.2f;//弹幕的速度这个值越小弹幕走的越慢
private static final int MARGIN_TOP = DpUtil.dp2px(150);
private static final int SPACE = DpUtil.dp2px(50);
private static final int DP_15 = DpUtil.dp2px(15);
private ImageView mAvatar;
private TextView mName;
private TextView mContent;
private int mScreenWidth;//屏幕宽度
private int mWidth;//控件的宽度
private ValueAnimator mAnimator;
private ValueAnimator.AnimatorUpdateListener mUpdateListener;
private Animator.AnimatorListener mAnimatorListener;
private boolean mCanNext;//是否可以有下一个
private boolean mIdle;//是否空闲
private ActionListener mActionListener;
private int mLineNum;
public FansDanmuViewHolder(Context context, ViewGroup parentView) {
super(context, parentView);
}
@Override
protected int getLayoutId() {
return R.layout.view_gift_danmu_fans;
}
@Override
public void init() {
mAvatar = (ImageView) findViewById(R.id.avatar);
mName = (TextView) findViewById(R.id.name);
mContent = (TextView) findViewById(R.id.content);
mScreenWidth = ScreenDimenUtil.getInstance().getScreenWdith();
mUpdateListener = new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float v = (float) animation.getAnimatedValue();
mContentView.setX(v);
if (!mCanNext && v <= mScreenWidth - mWidth - DP_15) {
mCanNext = true;
if (mActionListener != null) {
mActionListener.onCanNext(mLineNum);
}
}
}
};
mAnimatorListener = new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
removeFromParent();
mIdle = true;
if (mActionListener != null) {
mActionListener.onAnimEnd(FansDanmuViewHolder.this);
}
}
};
}
public void show(LiveDanMuBean bean, int lineNum) {
mLineNum = lineNum;
ImgLoader.display(mContext,bean.getAvatar(), mAvatar);
mName.setText(bean.getUserNiceName()+":");
LevelBean levelBean = CommonAppConfig.getInstance().getLevel(bean.getLevel());
if (levelBean != null) {
mName.setTextColor(Color.parseColor(levelBean.getColor()));
}
mContent.setText(bean.getContent());
mCanNext = false;
mContentView.measure(0, 0);
mWidth = mContentView.getMeasuredWidth();
mContentView.setX(mScreenWidth);
mContentView.setY(MARGIN_TOP + lineNum * SPACE);
addToParent();
mAnimator = ValueAnimator.ofFloat(mScreenWidth, -mWidth);
mAnimator.addUpdateListener(mUpdateListener);
mAnimator.setInterpolator(new LinearInterpolator());
mAnimator.setDuration((int) ((mScreenWidth + mWidth) / SPEED));
mAnimator.addListener(mAnimatorListener);
mAnimator.start();
}
public boolean isIdle() {
return mIdle;
}
public void setIdle(boolean idle) {
mIdle = idle;
}
public void setActionListener(ActionListener actionListener) {
mActionListener = actionListener;
}
public void release() {
if (mAnimator != null) {
mAnimator.cancel();
}
removeFromParent();
mActionListener = null;
}
public interface ActionListener {
void onCanNext(int lineNum);
void onAnimEnd(FansDanmuViewHolder vh);
}
}

View File

@ -893,6 +893,12 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
} }
} }
}); });
mAnchorSay.setOnLongClickListener(v -> {
return false;
});
btnEvent = findViewById(R.id.btn_event); btnEvent = findViewById(R.id.btn_event);
fullScreen = (FullServiceNotificationView) findViewById(R.id.full_screen); fullScreen = (FullServiceNotificationView) findViewById(R.id.full_screen);
noble = (NobleNoticeView) findViewById(R.id.noble); noble = (NobleNoticeView) findViewById(R.id.noble);
@ -5272,4 +5278,11 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
mLiveGiftAnimPresenter.showSendGiftAnimAllServer2(receiveGiftBean); mLiveGiftAnimPresenter.showSendGiftAnimAllServer2(receiveGiftBean);
mLiveGiftAnimPresenter.setLiveUidStream(mLiveUid, mStream); mLiveGiftAnimPresenter.setLiveUidStream(mLiveUid, mStream);
} }
public void sendWelcomeFans(){
LiveChatBean chatBean = new LiveChatBean();
chatBean.setContent("123123<font color='#FF8E43'>test</font>1243");
chatBean.setType(LiveChatBean.SYSTEM3_COLOR);
chatBean.setBubble("https://downs.yaoulive.com/20230322/g2_.9.png");
insertChat(chatBean,1);
}
} }

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<corners android:radius="9dp" />
<solid android:color="#FEF9ED" />
</shape>
</item>
</selector>

View File

@ -0,0 +1,94 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="350dp"
android:background="@mipmap/bg_fans_group_buy_dialog">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/anchorName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="37dp"
android:layout_marginBottom="12dp"
android:textColor="#8670F5"
android:textSize="15sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/giftName"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="主播昵稱的" />
<TextView
android:id="@+id/giftName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:textColor="#333333"
android:textSize="14sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/anchorName"
tools:text="臻愛禮包" />
<TextView
android:id="@+id/giftInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="9dp"
android:textColor="#B3000000"
android:textSize="10sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/giftName"
tools:text="購買可獲得5200鑽特定禮物同時可獲得限定資源" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/giftList"
android:layout_width="0dp"
android:layout_height="130dp"
android:layout_marginStart="25dp"
android:layout_marginTop="19dp"
android:layout_marginEnd="25dp"
android:orientation="horizontal"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/giftInfo"
tools:itemCount="3"
tools:listitem="@layout/item_fens_group_buy_list" />
<TextView
android:id="@+id/buy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="29dp"
android:background="@mipmap/icon_fans_group_buy_dialog_buy"
android:paddingStart="9dp"
android:paddingTop="6dp"
android:paddingEnd="9dp"
android:paddingBottom="6dp"
android:textColor="#FFF"
android:textSize="12sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/giftList"
tools:text="5200鑽購買" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="350dp"
android:background="@mipmap/bg_fans_group_buy_dialog">
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginStart="30dp"
android:layout_marginTop="30dp"
android:layout_marginEnd="30dp"
android:layout_marginBottom="30dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:textStyle="bold"
android:textColor="#333333"
android:textSize="15sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/live_fans_group_info_title" />
<TextView
android:layout_marginTop="13dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/live_fans_group_info_text1" />
<TextView
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/live_fans_group_info_text2" />
<TextView
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/live_fans_group_info_text3" />
<TextView
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/live_fans_group_info_text4" />
<TextView
android:textStyle="bold"
android:textColor="#333333"
android:layout_marginTop="20dp"
android:textSize="15sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/live_fans_group_info2_title" />
<TextView
android:layout_marginTop="13dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/live_fans_group_info2_text1" />
<TextView
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/live_fans_group_info2_text2" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="480dp"
android:background="@mipmap/bg_fans_group_buy_dialog">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/anchorName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="37dp"
android:textColor="#8670F5"
android:textSize="15sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="當前可送出" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/giftList"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="25dp"
android:layout_marginTop="17dp"
android:layout_marginEnd="25dp"
android:layout_marginBottom="30dp"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/anchorName"
tools:itemCount="4"
app:spanCount="3"
tools:listitem="@layout/item_fens_group_package_list" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,82 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="94dp"
android:background="@mipmap/icon_fans_group_buy_dialog_item"
android:layout_marginEnd="30dp"
android:layout_marginBottom="3dp"
android:layout_height="125dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/iconLayout"
android:layout_width="0dp"
android:layout_height="73dp"
android:layout_marginStart="6dp"
android:layout_marginTop="6dp"
android:layout_marginEnd="6dp"
android:background="@drawable/bg_fans_group_buy_dialog_item"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/giftIcon"
android:layout_width="70dp"
android:layout_height="60dp"
android:scaleType="fitCenter"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@mipmap/diamond" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/day"
android:layout_width="27dp"
android:layout_height="12dp"
android:layout_marginTop="3dp"
android:textSize="8sp"
android:textColor="#7059BB"
tools:text="1天"
android:gravity="center"
android:layout_marginEnd="4dp"
android:background="@mipmap/icon_fans_group_buy_dialog_day"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:textSize="14sp"
app:layout_constraintBottom_toTopOf="@+id/introduce"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:text="浪漫啓航 *1" />
<TextView
android:id="@+id/introduce"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:layout_marginBottom="6dp"
tools:text="5200"
android:textSize="11sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<ImageView
android:id="@+id/diamondIcon"
android:layout_width="14dp"
android:layout_height="14dp"
android:layout_marginEnd="4dp"
app:layout_constraintBottom_toBottomOf="@+id/introduce"
app:layout_constraintEnd_toStartOf="@+id/introduce"
app:layout_constraintTop_toTopOf="@+id/introduce"
app:srcCompat="@mipmap/diamond" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="94dp"
android:layout_height="155dp"
android:layout_marginEnd="30dp"
android:layout_marginBottom="19dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout4"
android:layout_width="94dp"
android:layout_height="120dp"
android:background="@mipmap/icon_fans_group_buy_dialog_item"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/iconLayout"
android:layout_width="0dp"
android:layout_height="73dp"
android:layout_marginStart="6dp"
android:layout_marginTop="6dp"
android:layout_marginEnd="6dp"
android:background="@drawable/bg_fans_group_buy_dialog_item"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/giftIcon"
android:layout_width="70dp"
android:layout_height="60dp"
android:scaleType="fitCenter"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@mipmap/diamond" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:textColor="#FFFFFF"
android:textSize="14sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/iconLayout"
tools:text="浪漫啓航 *1" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/textView12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
android:background="@mipmap/bg_funs_group_send_dialog_item"
android:paddingStart="13dp"
android:paddingTop="4dp"
android:paddingEnd="13dp"
android:paddingBottom="4dp"
tools:text="贈送"
android:textColor="#E6FFFFFF"
android:textSize="12sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/constraintLayout4" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="340dp"
android:layout_height="75dp"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:background="@mipmap/bg_funs_live_anchor_start">
<com.yunbao.common.custom.RatioRoundImageView
android:id="@+id/avatar"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginStart="8dp"
android:layout_marginTop="7dp"
android:layout_marginBottom="7dp"
android:src="@mipmap/icon_green_science"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:ri_ratio="0.5"
app:riv_oval="true" />
<TextView
android:id="@+id/anchorName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginTop="15dp"
android:text="TextView"
android:textColor="#FFFFFF"
android:textSize="16sp"
app:layout_constraintStart_toEndOf="@+id/avatar"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="TextView"
android:textSize="13sp"
android:textColor="#CCFFFFFF"
app:layout_constraintStart_toStartOf="@+id/anchorName"
app:layout_constraintTop_toBottomOf="@+id/anchorName" />
<TextView
android:id="@+id/liveGo"
android:layout_width="41dp"
android:layout_height="21dp"
android:layout_marginEnd="11dp"
android:background="@mipmap/bg_funs_live_go_start"
android:gravity="center"
android:textColor="#FFFEF3"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="圍觀" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="27dp"
android:background="@mipmap/bg_fans_danmu"
android:gravity="center">
<LinearLayout
android:layout_width="wrap_content"
android:gravity="center"
android:orientation="horizontal"
android:layout_height="wrap_content">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="34dp"
android:layout_height="34dp"
android:layout_marginStart="1dp">
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/avatar"
android:layout_width="34dp"
android:layout_height="34dp"
android:padding="7dp"
android:src="@mipmap/beauty_jingbai"
android:scaleType="centerCrop"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:riv_border_color="@color/white"
app:riv_border_width="1dp"
app:riv_oval="true" />
<ImageView
android:layout_width="34dp"
android:layout_height="30dp"
android:background="@mipmap/icon_fans_danmu_avatar"
android:scaleType="centerInside"
app:layout_constraintBottom_toBottomOf="@+id/avatar"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:textColor="@color/color_white"
android:textSize="12sp"
android:visibility="visible"
tools:text="用戶昵稱:" />
<TextView
android:id="@+id/content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="13sp"
android:visibility="visible"
tools:text="彈幕~" />
</LinearLayout>
</LinearLayout>

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

View File

@ -99,4 +99,12 @@
<string name="live_details_sned_gift_text3">\'s letter and contact information</string> <string name="live_details_sned_gift_text3">\'s letter and contact information</string>
<string name="me_edit_avatar_title">Select Avatar</string> <string name="me_edit_avatar_title">Select Avatar</string>
<string name="me_edit_avatar_submit">Confirm</string> <string name="me_edit_avatar_submit">Confirm</string>
<string name="live_fans_group_info_text1">1 The fan exclusive gift pack is an exclusive benefit for fan group users, which can quickly increase their companionship with the host after purchase</string>
<string name="live_fans_group_info_text2">2 Limited edition anchor gift (to protect you and love you dearly) is included in the Cherish Gift Bag and Zhenai Gift Bag. After purchase, it is placed in the fan gift backpack</string>
<string name="live_fans_group_info_text3">3 The exclusive gift package is bound to the anchor in a one-on-one relationship, and purchasing gift resources in the exclusive gift package can only be given to the anchor</string>
<string name="live_fans_group_info_text4">4 The gift resources in the gift package are valid for 30 days and can be given normally during the validity period; Gift resources become invalid and cannot be given after expiration</string>
<string name="live_fans_group_info2_text1">1 Purchase can only be made once a month, and the gift package will be distributed in real-time after purchase</string>
<string name="live_fans_group_info2_text2">2. The final interpretation rights of this gift package belong to PD Live</string>
<string name="live_fans_group_info_title">Introduction</string>
<string name="live_fans_group_info2_title">Rules</string>
</resources> </resources>

View File

@ -97,4 +97,12 @@
<string name="live_details_sned_gift_text3">的信件與聯繫方式</string> <string name="live_details_sned_gift_text3">的信件與聯繫方式</string>
<string name="me_edit_avatar_title">選擇頭像</string> <string name="me_edit_avatar_title">選擇頭像</string>
<string name="me_edit_avatar_submit">確認使用</string> <string name="me_edit_avatar_submit">確認使用</string>
<string name="live_fans_group_info_text1">1. 粉絲專屬禮包為粉絲團用戶專屬權益,購買後可 快速提昇與該主播的陪伴值</string>
<string name="live_fans_group_info_text2">2. 珍愛禮包、臻愛禮包中包入限量主播禮物(守護 你,摯愛你),開啟后立即發放到包裹中</string>
<string name="live_fans_group_info_text3">3. 專屬禮包與主播為 1 對 1 綁定關係,購買專屬 禮包中禮物資源只可送給該主播</string>
<string name="live_fans_group_info_text4">4. 禮包中禮物資源有效期 30 天,有效期內均可正 常贈送;過期後禮物資源失效不可贈送</string>
<string name="live_fans_group_info2_text1">1. 當月只可購買一次,購買后禮包实时發放</string>
<string name="live_fans_group_info2_text2">2. 该禮包最終解釋權歸 PD Live 所有</string>
<string name="live_fans_group_info_title">禮包介紹</string>
<string name="live_fans_group_info2_title">購買規則</string>
</resources> </resources>

View File

@ -13,7 +13,7 @@
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
android:id="@+id/textView12" android:id="@+id/anchorName"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="28dp" android:layout_height="28dp"
android:paddingStart="15dp" android:paddingStart="15dp"
@ -34,5 +34,5 @@
tools:listitem="@layout/item_red_packet" tools:listitem="@layout/item_red_packet"
tools:itemCount="10" tools:itemCount="10"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView12" /> app:layout_constraintTop_toBottomOf="@+id/anchorName" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -42,7 +42,7 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<ImageView <ImageView
android:id="@+id/imageView9" android:id="@+id/giftIcon"
android:layout_width="31dp" android:layout_width="31dp"
android:layout_height="40dp" android:layout_height="40dp"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"