新增直播间冠名礼物特效

This commit is contained in:
Martin 2024-07-16 10:31:18 +08:00
parent 484069dac7
commit 22b208bcd9
14 changed files with 340 additions and 49 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -30,6 +30,10 @@ public class UserMedalModel extends BaseModel implements BaseBannerInfo {
return use_status;
}
public void setUse_status(String use_status) {
this.use_status = use_status;
}
public String getId() {
return id;
}

View File

@ -13,16 +13,22 @@ import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.lxj.xpopup.XPopup;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.R;
import com.yunbao.common.adapter.GiftWallAchieveAdapter;
import com.yunbao.common.bean.IMLoginModel;
import com.yunbao.common.bean.MedalAchievementModel;
import com.yunbao.common.bean.UserMedalListModel;
import com.yunbao.common.fragment.GiftWallMainTab1Fragment;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.ScreenDimenUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import java.util.ArrayList;
import java.util.List;
@ -41,6 +47,7 @@ public class GiftWallAchieveDialog extends AbsDialogPopupWindow {
private String toUid;
private boolean isAnchor;
private View topBar;
private TextView honor;
private List<UserMedalListModel> userMedalListModelList = new ArrayList<>();
@ -90,12 +97,29 @@ public class GiftWallAchieveDialog extends AbsDialogPopupWindow {
mRecyclerView.setLayoutManager(new GridLayoutManager(mContext, 3, GridLayoutManager.VERTICAL, false));
numCount = findViewById(R.id.numCount);
topBar = findViewById(R.id.top_bar);
honor = findViewById(R.id.honor);
mIvBack.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
dialog.dismiss();
}
});
ViewClicksAntiShake.clicksAntiShake(honor, () -> {
StringBuffer htmlUrl = new StringBuffer();
IMLoginModel userInfo = IMLoginManager.get(getContext()).getUserInfo();
htmlUrl.append(CommonAppConfig.HOST)
.append("/h5/shequ/index.html#/h5/shequ/RongYuQiang?")
.append("touid=")
.append(toUid)
.append("&token=")
.append(userInfo.getToken())
.append("&uid=")
.append(userInfo.getId()) .append("&isZh=")
.append(WordUtil.isNewZh() ? "1" : 0);
RouteUtil.forwardLiveZhuangBanActivity(htmlUrl.toString(), true);
});
}
@Override
@ -124,7 +148,12 @@ public class GiftWallAchieveDialog extends AbsDialogPopupWindow {
giftWallAchieveAdapter.setOnItemClickListener(new GiftWallAchieveAdapter.OnItemClickListener() {
@Override
public void onItemClick(int position) {
GiftWallAchieveWearDialog giftWallAchieveWearDialog = new GiftWallAchieveWearDialog(mContext,isAnchor,userMedalListModelList.get(position).getDressInfo());
GiftWallAchieveWearDialog giftWallAchieveWearDialog = new GiftWallAchieveWearDialog(mContext, isAnchor, userMedalListModelList.get(position).getDressInfo(), new GiftWallAchieveWearDialog.UserUseDressSuccess() {
@Override
public void onSuccess() {
initData();
}
});
giftWallAchieveWearDialog.showDialog();
}
});

View File

@ -12,7 +12,7 @@ import com.lxj.xpopup.XPopup;
import com.stx.xhb.androidx.XBanner;
import com.stx.xhb.androidx.transformers.Transformer;
import com.yunbao.common.R;
import com.yunbao.common.bean.BaseModel;
import com.yunbao.common.bean.HttpCallbackModel;
import com.yunbao.common.bean.UserMedalModel;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.base.HttpCallback;
@ -43,11 +43,14 @@ public class GiftWallAchieveWearDialog extends AbsDialogPopupWindow {
String putOn = WordUtil.isNewZh() ? "佩戴" : "wearing";
String wearing = WordUtil.isNewZh() ? "已佩戴" : "worn";
private List<UserMedalModel> achieveWearModels = new ArrayList<>();
private UserUseDressSuccess userUseDressSuccess;
public GiftWallAchieveWearDialog(@NonNull Context context,boolean isAnchor, List<UserMedalModel> achieveWearModels) {
public GiftWallAchieveWearDialog(@NonNull Context context,boolean isAnchor, List<UserMedalModel> achieveWearModels,UserUseDressSuccess userUseDressSuccess) {
super(context);
this.isAnchor = isAnchor;
this.achieveWearModels = achieveWearModels;
this.userUseDressSuccess = userUseDressSuccess;
}
public GiftWallAchieveWearDialog setFullWindows(boolean fullWindows) {
@ -94,16 +97,22 @@ public class GiftWallAchieveWearDialog extends AbsDialogPopupWindow {
btnConfirm.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
if (achieveWearModels.get(selectPosition).getUseStatus().equals("2") && achieveWearModels.get(selectPosition).getDressStatus().equals("2")) {
LiveNetManager.get(mContext).userUseDress("3", achieveWearModels.get(selectPosition).getUsersDressId(), new HttpCallback<BaseModel>() {
if (achieveWearModels.get(selectPosition).getUseStatus().equals("0") && achieveWearModels.get(selectPosition).getDressStatus().equals("2")) {
LiveNetManager.get(mContext).userUseDress("3", achieveWearModels.get(selectPosition).getUsersDressId(), new HttpCallback<HttpCallbackModel>() {
@Override
public void onSuccess(BaseModel data) {
public void onSuccess(HttpCallbackModel data) {
ToastUtil.show(data.getMsg());
if (data.getCode() == 0) {
if(userUseDressSuccess!=null){
userUseDressSuccess.onSuccess();
}
dialog.dismiss();
}
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
}
@ -132,8 +141,8 @@ public class GiftWallAchieveWearDialog extends AbsDialogPopupWindow {
public void setWearInfo() {
textAchieveName.setText(achieveWearModels.get(selectPosition).getDressName());
textAchieveHint.setText(achieveWearModels.get(selectPosition).getDressDescription());
btnConfirm.setText(achieveWearModels.get(selectPosition).getUseStatus().equals("2") ? wearing : putOn);
if (achieveWearModels.get(selectPosition).getUseStatus().equals("2") && achieveWearModels.get(selectPosition).getDressStatus().equals("2")) {
btnConfirm.setText(achieveWearModels.get(selectPosition).getUseStatus().equals("1") ? wearing : putOn);
if (achieveWearModels.get(selectPosition).getUseStatus().equals("0") && achieveWearModels.get(selectPosition).getDressStatus().equals("2")) {
btnConfirm.setBackground(getResources().getDrawable(R.drawable.gift_wall_achieve_wear_sure));
} else {
btnConfirm.setBackground(getResources().getDrawable(R.drawable.gift_wall_achieve_wear_disable));
@ -176,4 +185,8 @@ public class GiftWallAchieveWearDialog extends AbsDialogPopupWindow {
}
});
}
public interface UserUseDressSuccess {
void onSuccess();
}
}

View File

@ -1274,8 +1274,7 @@ public interface PDLiveApi {
Observable<ResponseModel<MedalAchievementModel>> getGiftHallMedalList(@Query("to_uid") String liveUid,@Query("type")String type);
@GET("/api/public/?service=Dress.userUseDress")
Observable<ResponseModel<BaseModel>> userUseDress(@Query("dress_type") String dress_type,@Query("users_dress_id")String users_dress_id);
Observable<ResponseModel<List<BaseModel>>> userUseDress(@Query("dress_type") String dress_type,@Query("users_dress_id")String users_dress_id);
/**
* 个人展馆

View File

@ -3528,16 +3528,19 @@ public class LiveNetManager {
}).isDisposed();
}
public void userUseDress(String dressType, String usersDressId, HttpCallback<BaseModel> callback) {
public void userUseDress(String dressType, String usersDressId, HttpCallback<HttpCallbackModel> callback) {
API.get().pdLiveApi(mContext)
.userUseDress(dressType, usersDressId)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<BaseModel>>() {
.subscribe(new Consumer<ResponseModel<List<BaseModel>>>() {
@Override
public void accept(ResponseModel<BaseModel> listResponseModel) throws Exception {
public void accept(ResponseModel<List<BaseModel>> responseModel) throws Exception {
if (callback != null) {
callback.onSuccess(listResponseModel.getData().getInfo());
HttpCallbackModel model = new HttpCallbackModel();
model.setCode(responseModel.getData().getCode());
model.setMsg(responseModel.getData().getMsg());
callback.onSuccess(model);
}
}
}, new Consumer<Throwable>() {

View File

@ -64,11 +64,13 @@
android:layout_height="match_parent"/>
<TextView
android:id="@+id/honor"
android:text="@string/wall_honor"
android:gravity="center_vertical"
android:textColor="#E0E0E0"
android:textSize="12dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:layout_height="match_parent"/>
<ImageView
android:src="@mipmap/dialog_gift_wall_more"

View File

@ -57,6 +57,7 @@ public class LiveReceiveGiftBean extends BaseModel {
private boolean isBlindBox = false;
private String namingLiveuid;
private String namingUid;
private String naming_user_id;
private String namingLiveName;
private String namingUserName;
private String namingLiveAvatar;
@ -89,6 +90,14 @@ public class LiveReceiveGiftBean extends BaseModel {
return this;
}
public String getNaming_user_id() {
return naming_user_id;
}
public void setNaming_user_id(String naming_user_id) {
this.naming_user_id = naming_user_id;
}
public String getMsg() {
return msg;
}

View File

@ -7,6 +7,7 @@ import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AccelerateDecelerateInterpolator;
@ -14,10 +15,15 @@ import android.view.animation.Animation;
import android.view.animation.Interpolator;
import android.view.animation.ScaleAnimation;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.opensource.svgaplayer.SVGADrawable;
import com.opensource.svgaplayer.SVGAImageView;
import com.opensource.svgaplayer.SVGAVideoEntity;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.AbsViewHolder;
import com.yunbao.live.R;
@ -31,7 +37,10 @@ import com.yunbao.live.utils.LiveTextRender;
public class LiveGiftViewHolder extends AbsViewHolder {
private View mRoot, root_back;
private View mRoot;
private SVGAImageView root_back;
private SVGAImageView giftNamingIcon;
private LinearLayout contentLayout;
private View mBg;
private View mStar;
private ImageView mAvatar;
@ -41,7 +50,6 @@ public class LiveGiftViewHolder extends AbsViewHolder {
private TextView mGiftCount;
private TextView mGiftGroupCount;
private TextView mMulSign;//乘号
private ImageView giftNamingIcon;
private int mDp214;
private ObjectAnimator mAnimator;
private Animation mAnimation;//礼物数字执行的放大动画
@ -64,7 +72,8 @@ public class LiveGiftViewHolder extends AbsViewHolder {
@Override
public void init() {
mRoot = findViewById(R.id.root);
root_back = findViewById(R.id.root_back);
View namingView = LayoutInflater.from(mContext).inflate(R.layout.view_whole_station_horn, null, false);
root_back = (SVGAImageView) findViewById(R.id.root_back_naming);
mBg = findViewById(R.id.bg);
mStar = findViewById(R.id.star);
mAvatar = (ImageView) findViewById(R.id.avatar);
@ -74,7 +83,8 @@ public class LiveGiftViewHolder extends AbsViewHolder {
mGiftCount = (TextView) findViewById(R.id.gift_count);
mGiftGroupCount = (TextView) findViewById(R.id.gift_group_count);
mMulSign = (TextView) findViewById(R.id.mul_sign);
giftNamingIcon = (ImageView) findViewById(R.id.gift_naming_icon);
giftNamingIcon = (SVGAImageView) findViewById(R.id.gift_naming_icon);
contentLayout = (LinearLayout) findViewById(R.id.content_layout);
mDp214 = DpUtil.dp2px(214);
mHandler = new Handler() {
@Override
@ -151,6 +161,8 @@ public class LiveGiftViewHolder extends AbsViewHolder {
}
if (!isSameUser) {
ImgLoader.displayAvatar(mContext, bean.getAvatar(), mAvatar);
mName.setText(bean.getUserNiceName());
lian = false;
}
@ -168,10 +180,19 @@ public class LiveGiftViewHolder extends AbsViewHolder {
if (mGiftCount != null && mGiftCount.getVisibility() == View.VISIBLE) {
mGiftCount.setVisibility(View.INVISIBLE);
}
if(bean.getUid().equals(bean.getNaming_user_id())){
if (mStar != null && mStar.getVisibility() != View.VISIBLE) {
mStar.setVisibility(View.VISIBLE);
}
if (mHandler != null) {
mHandler.sendEmptyMessageDelayed(0, 200);
}
}else{
if (mAnimator != null) {
mAnimator.start();
}
}
}
if (lian) {
mLianCount++;
} else {
@ -181,19 +202,45 @@ public class LiveGiftViewHolder extends AbsViewHolder {
mGiftCount.setText(new LiveTextRender().renderGiftCount(mLianCount));
}
mLastGiftKey = bean.getKey();
if (!TextUtils.isEmpty(bean.getNamingLiveuid()) &&
!TextUtils.isEmpty(bean.getNamingUid()) &&
!TextUtils.equals(bean.getNamingLiveuid(), "0") &&
!TextUtils.equals(bean.getNamingUid(), "0")) {
// if (bean.getUid().equals(bean.getNaming_user_id())) {
if (bean.getUid().equals(bean.getNaming_user_id())) {
SVGAVideoEntity drawable = null;
if(WordUtil.isNewZh()&&LiveRoomViewHolder.drawableTitleCn!=null){
drawable = LiveRoomViewHolder.drawableTitleCn;
}else if(!WordUtil.isNewZh()&&LiveRoomViewHolder.drawableTitleEn!=null){
drawable = LiveRoomViewHolder.drawableTitleEn;
}
if(drawable!=null){
L.eSw("-----------------");
giftNamingIcon.setImageDrawable(new SVGADrawable(drawable));
giftNamingIcon.setLoops(0);
giftNamingIcon.startAnimation();
giftNamingIcon.setVisibility(View.VISIBLE);
root_back.setBackgroundResource(R.mipmap.icon_live_gift_anim_11);
/*root_back.setBackgroundResource(R.drawable.background_naming);
findViewById(R.id.naming_icon).setVisibility(View.VISIBLE);*/
}
ViewGroup.LayoutParams params = root_back.getLayoutParams();
params.height = DpUtil.dp2px(45);
root_back.setLayoutParams(params);
ViewGroup.LayoutParams params1 = contentLayout.getLayoutParams();
params1.height = DpUtil.dp2px(45);
contentLayout.setLayoutParams(params1);
if(LiveRoomViewHolder.drawableBg!=null){
root_back.setImageDrawable(new SVGADrawable(LiveRoomViewHolder.drawableBg));
root_back.setLoops(0);
root_back.startAnimation();
}
} else {
giftNamingIcon.setVisibility(View.VISIBLE);
root_back.setBackgroundResource(R.mipmap.icon_live_gift_anim_11);
//root_back.setBackgroundResource(R.mipmap.icon_live_gift_anim_3);
findViewById(R.id.naming_icon).setVisibility(View.GONE);
ViewGroup.LayoutParams params = root_back.getLayoutParams();
params.height = DpUtil.dp2px(50);
root_back.setLayoutParams(params);
ViewGroup.LayoutParams params1= contentLayout.getLayoutParams();
params1.height = DpUtil.dp2px(50);
contentLayout.setLayoutParams(params1);
root_back.setImageDrawable(mContent.getResources().getDrawable(R.mipmap.icon_live_gift_anim_3));
giftNamingIcon.setVisibility(View.GONE);
}
if (lian && mGiftCount != null && mAnimation != null) {
mGiftCount.startAnimation(mAnimation);

View File

@ -69,6 +69,7 @@ import com.opensource.svgaplayer.SVGAImageView;
import com.opensource.svgaplayer.SVGAParser;
import com.opensource.svgaplayer.SVGAVideoEntity;
import com.yunbao.common.bean.PrankProgressBean;
import com.yunbao.common.fragment.GiftWallMainTab1Fragment;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
@ -436,6 +437,10 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
private static boolean isSw;
public static SVGAVideoEntity drawableTitleCn;
public static SVGAVideoEntity drawableTitleEn;
public static SVGAVideoEntity drawableBg;
public LiveRoomViewHolder setGuardType(int guardType) {
this.guardType = guardType;
return this;
@ -595,7 +600,43 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
mSVGAImageView = svgaImageView;
mLiveGiftPrizePoolContainer = liveGiftPrizePoolContainer;
this.windowManager = windowManager;
initSvgaNaming();
}
private void initSvgaNaming() {
new SVGAParser(mContext).decodeFromAssets("gift_live_naming_bg.svga", new SVGAParser.ParseCompletion() {
@Override
public void onComplete(@NonNull SVGAVideoEntity videoItem) {
drawableBg = videoItem;
}
@Override
public void onError() {
System.err.println("-------------SVGA报错了");
}
}, null);
new SVGAParser(mContext).decodeFromAssets("gift_live_naming_title_cn.svga", new SVGAParser.ParseCompletion() {
@Override
public void onComplete(@NonNull SVGAVideoEntity videoItem) {
drawableTitleCn = videoItem;
}
@Override
public void onError() {
System.err.println("-------------SVGA报错了");
}
}, null);
new SVGAParser(mContext).decodeFromAssets("gift_live_naming_title_en.svga", new SVGAParser.ParseCompletion() {
@Override
public void onComplete(@NonNull SVGAVideoEntity videoItem) {
drawableTitleEn = videoItem;
}
@Override
public void onError() {
System.err.println("-------------SVGA报错了");
}
}, null);
}
public void clearList() {
@ -3657,8 +3698,8 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LIVE_WKS));
}
});
wksAndGiftWall.addView(weekView);
wksAndGiftWall.startFlipping();
//wksAndGiftWall.addView(weekView);
//wksAndGiftWall.startFlipping();
new LoadDian9TuUtil().loadDian9TuAssets2(mContext, liveWksLayout, "rectangle_new.png", 1);
}
@ -4643,6 +4684,9 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
mRefreshUserListCallback = null;
mTimeChargeCallback = null;
Contexts = null;
drawableBg = null;
drawableTitleCn = null;
drawableTitleEn = null;
}
public void clearData() {

View File

@ -9,13 +9,15 @@
tools:visibility="visible"
android:visibility="invisible">
<View
android:id="@+id/root_back"
<com.opensource.svgaplayer.SVGAImageView
android:id="@+id/root_back_naming"
android:layout_width="204dp"
android:layout_height="50dp"
android:layout_height="40dp"
android:scaleType="fitStart"
android:layout_gravity="bottom"
app:autoPlay="true"
android:layout_marginLeft="10dp"
android:background="@mipmap/icon_live_gift_anim_3" />
/>
<View
android:id="@+id/bg"
@ -36,8 +38,9 @@
android:visibility="invisible" />
<LinearLayout
android:id="@+id/content_layout"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_height="40dp"
android:layout_gravity="bottom"
android:layout_marginLeft="10dp"
android:gravity="center_vertical"
@ -45,9 +48,9 @@
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/avatar"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginLeft="10dp"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="8dp"
android:scaleType="centerCrop"
app:riv_oval="true" />
@ -76,11 +79,13 @@
</LinearLayout>
<ImageView
android:layout_marginLeft="10dp"
android:id="@+id/gift_icon"
android:layout_width="40dp"
android:layout_height="match_parent" />
<LinearLayout
android:layout_marginLeft="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
@ -123,11 +128,10 @@
android:textColor="#DB7008"
android:textSize="10sp" />
<ImageView
android:layout_marginTop="10dp"
android:layout_marginStart="20dp"
<com.opensource.svgaplayer.SVGAImageView
android:layout_marginTop="12dp"
android:layout_marginStart="17dp"
android:id="@+id/gift_naming_icon"
android:src="@mipmap/gift_naming_icon"
android:layout_width="27dp"
android:layout_height="12dp"/>

View File

@ -0,0 +1,137 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="60dp"
android:clipChildren="false"
tools:visibility="visible"
android:visibility="invisible">
<com.opensource.svgaplayer.SVGAImageView
android:id="@+id/root_back"
android:layout_width="204dp"
android:layout_height="45dp"
android:scaleType="fitStart"
android:layout_gravity="bottom"
app:autoPlay="true"
android:layout_marginLeft="10dp"
/>
<View
android:id="@+id/bg"
android:layout_width="204dp"
android:layout_height="50dp"
android:layout_gravity="bottom"
android:layout_marginLeft="10dp"
android:background="@mipmap/icon_live_gift_anim_4"
android:translationX="-214dp" />
<View
android:id="@+id/star"
android:layout_width="38dp"
android:layout_height="50dp"
android:layout_gravity="bottom"
android:layout_marginLeft="214dp"
android:background="@mipmap/icon_live_gift_anim_5"
android:visibility="invisible" />
<LinearLayout
android:id="@+id/content_layout"
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_gravity="bottom"
android:layout_marginLeft="10dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/avatar"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="8dp"
android:scaleType="centerCrop"
app:riv_oval="true" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:textSize="12sp" />
<TextView
android:id="@+id/content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="12sp" />
</LinearLayout>
<ImageView
android:layout_marginLeft="10dp"
android:id="@+id/gift_icon"
android:layout_width="40dp"
android:layout_height="match_parent" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/gift_group_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:textSize="14sp" />
<TextView
android:id="@+id/mul_sign"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/yellow4"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
<TextView
android:id="@+id/gift_count"
android:layout_width="150dp"
android:layout_height="32dp"
android:singleLine="true"
android:visibility="invisible" />
</LinearLayout>
<TextView
android:id="@+id/naming_icon"
android:layout_width="56dp"
android:layout_height="15dp"
android:layout_gravity="bottom"
android:visibility="gone"
android:layout_marginStart="11dp"
android:background="@drawable/background_naming_icon"
android:gravity="center"
android:text="@string/the_title_financier2"
android:textColor="#DB7008"
android:textSize="10sp" />
<com.opensource.svgaplayer.SVGAImageView
android:layout_marginTop="12dp"
android:layout_marginStart="20dp"
android:id="@+id/gift_naming_icon"
android:layout_width="27dp"
android:layout_height="12dp"/>
</FrameLayout>