新增直播间冠名礼物特效

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; return use_status;
} }
public void setUse_status(String use_status) {
this.use_status = use_status;
}
public String getId() { public String getId() {
return id; return id;
} }

View File

@ -13,16 +13,22 @@ import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.lxj.xpopup.XPopup; import com.lxj.xpopup.XPopup;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.R; import com.yunbao.common.R;
import com.yunbao.common.adapter.GiftWallAchieveAdapter; import com.yunbao.common.adapter.GiftWallAchieveAdapter;
import com.yunbao.common.bean.IMLoginModel;
import com.yunbao.common.bean.MedalAchievementModel; import com.yunbao.common.bean.MedalAchievementModel;
import com.yunbao.common.bean.UserMedalListModel; import com.yunbao.common.bean.UserMedalListModel;
import com.yunbao.common.fragment.GiftWallMainTab1Fragment; import com.yunbao.common.fragment.GiftWallMainTab1Fragment;
import com.yunbao.common.http.base.HttpCallback; import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager; import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.DpUtil; import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.ScreenDimenUtil; import com.yunbao.common.utils.ScreenDimenUtil;
import com.yunbao.common.utils.ToastUtil; 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.ArrayList;
import java.util.List; import java.util.List;
@ -41,6 +47,7 @@ public class GiftWallAchieveDialog extends AbsDialogPopupWindow {
private String toUid; private String toUid;
private boolean isAnchor; private boolean isAnchor;
private View topBar; private View topBar;
private TextView honor;
private List<UserMedalListModel> userMedalListModelList = new ArrayList<>(); private List<UserMedalListModel> userMedalListModelList = new ArrayList<>();
@ -90,12 +97,29 @@ public class GiftWallAchieveDialog extends AbsDialogPopupWindow {
mRecyclerView.setLayoutManager(new GridLayoutManager(mContext, 3, GridLayoutManager.VERTICAL, false)); mRecyclerView.setLayoutManager(new GridLayoutManager(mContext, 3, GridLayoutManager.VERTICAL, false));
numCount = findViewById(R.id.numCount); numCount = findViewById(R.id.numCount);
topBar = findViewById(R.id.top_bar); topBar = findViewById(R.id.top_bar);
honor = findViewById(R.id.honor);
mIvBack.setOnClickListener(new OnClickListener() { mIvBack.setOnClickListener(new OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
dialog.dismiss(); 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 @Override
@ -124,7 +148,12 @@ public class GiftWallAchieveDialog extends AbsDialogPopupWindow {
giftWallAchieveAdapter.setOnItemClickListener(new GiftWallAchieveAdapter.OnItemClickListener() { giftWallAchieveAdapter.setOnItemClickListener(new GiftWallAchieveAdapter.OnItemClickListener() {
@Override @Override
public void onItemClick(int position) { 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(); giftWallAchieveWearDialog.showDialog();
} }
}); });

View File

@ -12,7 +12,7 @@ import com.lxj.xpopup.XPopup;
import com.stx.xhb.androidx.XBanner; import com.stx.xhb.androidx.XBanner;
import com.stx.xhb.androidx.transformers.Transformer; import com.stx.xhb.androidx.transformers.Transformer;
import com.yunbao.common.R; 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.bean.UserMedalModel;
import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.base.HttpCallback; import com.yunbao.common.http.base.HttpCallback;
@ -43,11 +43,14 @@ public class GiftWallAchieveWearDialog extends AbsDialogPopupWindow {
String putOn = WordUtil.isNewZh() ? "佩戴" : "wearing"; String putOn = WordUtil.isNewZh() ? "佩戴" : "wearing";
String wearing = WordUtil.isNewZh() ? "已佩戴" : "worn"; String wearing = WordUtil.isNewZh() ? "已佩戴" : "worn";
private List<UserMedalModel> achieveWearModels = new ArrayList<>(); 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); super(context);
this.isAnchor = isAnchor; this.isAnchor = isAnchor;
this.achieveWearModels = achieveWearModels; this.achieveWearModels = achieveWearModels;
this.userUseDressSuccess = userUseDressSuccess;
} }
public GiftWallAchieveWearDialog setFullWindows(boolean fullWindows) { public GiftWallAchieveWearDialog setFullWindows(boolean fullWindows) {
@ -94,16 +97,22 @@ public class GiftWallAchieveWearDialog extends AbsDialogPopupWindow {
btnConfirm.setOnClickListener(new OnClickListener() { btnConfirm.setOnClickListener(new OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
if (achieveWearModels.get(selectPosition).getUseStatus().equals("2") && achieveWearModels.get(selectPosition).getDressStatus().equals("2")) { if (achieveWearModels.get(selectPosition).getUseStatus().equals("0") && achieveWearModels.get(selectPosition).getDressStatus().equals("2")) {
LiveNetManager.get(mContext).userUseDress("3", achieveWearModels.get(selectPosition).getUsersDressId(), new HttpCallback<BaseModel>() { LiveNetManager.get(mContext).userUseDress("3", achieveWearModels.get(selectPosition).getUsersDressId(), new HttpCallback<HttpCallbackModel>() {
@Override @Override
public void onSuccess(BaseModel data) { public void onSuccess(HttpCallbackModel data) {
dialog.dismiss(); ToastUtil.show(data.getMsg());
if (data.getCode() == 0) {
if(userUseDressSuccess!=null){
userUseDressSuccess.onSuccess();
}
dialog.dismiss();
}
} }
@Override @Override
public void onError(String error) { public void onError(String error) {
ToastUtil.show(error);
} }
}); });
} }
@ -132,8 +141,8 @@ public class GiftWallAchieveWearDialog extends AbsDialogPopupWindow {
public void setWearInfo() { public void setWearInfo() {
textAchieveName.setText(achieveWearModels.get(selectPosition).getDressName()); textAchieveName.setText(achieveWearModels.get(selectPosition).getDressName());
textAchieveHint.setText(achieveWearModels.get(selectPosition).getDressDescription()); textAchieveHint.setText(achieveWearModels.get(selectPosition).getDressDescription());
btnConfirm.setText(achieveWearModels.get(selectPosition).getUseStatus().equals("2") ? wearing : putOn); btnConfirm.setText(achieveWearModels.get(selectPosition).getUseStatus().equals("1") ? wearing : putOn);
if (achieveWearModels.get(selectPosition).getUseStatus().equals("2") && achieveWearModels.get(selectPosition).getDressStatus().equals("2")) { if (achieveWearModels.get(selectPosition).getUseStatus().equals("0") && achieveWearModels.get(selectPosition).getDressStatus().equals("2")) {
btnConfirm.setBackground(getResources().getDrawable(R.drawable.gift_wall_achieve_wear_sure)); btnConfirm.setBackground(getResources().getDrawable(R.drawable.gift_wall_achieve_wear_sure));
} else { } else {
btnConfirm.setBackground(getResources().getDrawable(R.drawable.gift_wall_achieve_wear_disable)); 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); Observable<ResponseModel<MedalAchievementModel>> getGiftHallMedalList(@Query("to_uid") String liveUid,@Query("type")String type);
@GET("/api/public/?service=Dress.userUseDress") @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(); }).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) API.get().pdLiveApi(mContext)
.userUseDress(dressType, usersDressId) .userUseDress(dressType, usersDressId)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<BaseModel>>() { .subscribe(new Consumer<ResponseModel<List<BaseModel>>>() {
@Override @Override
public void accept(ResponseModel<BaseModel> listResponseModel) throws Exception { public void accept(ResponseModel<List<BaseModel>> responseModel) throws Exception {
if (callback != null) { 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>() { }, new Consumer<Throwable>() {

View File

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

View File

@ -57,6 +57,7 @@ public class LiveReceiveGiftBean extends BaseModel {
private boolean isBlindBox = false; private boolean isBlindBox = false;
private String namingLiveuid; private String namingLiveuid;
private String namingUid; private String namingUid;
private String naming_user_id;
private String namingLiveName; private String namingLiveName;
private String namingUserName; private String namingUserName;
private String namingLiveAvatar; private String namingLiveAvatar;
@ -89,6 +90,14 @@ public class LiveReceiveGiftBean extends BaseModel {
return this; 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() { public String getMsg() {
return msg; return msg;
} }

View File

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

View File

@ -69,6 +69,7 @@ import com.opensource.svgaplayer.SVGAImageView;
import com.opensource.svgaplayer.SVGAParser; import com.opensource.svgaplayer.SVGAParser;
import com.opensource.svgaplayer.SVGAVideoEntity; import com.opensource.svgaplayer.SVGAVideoEntity;
import com.yunbao.common.bean.PrankProgressBean; import com.yunbao.common.bean.PrankProgressBean;
import com.yunbao.common.fragment.GiftWallMainTab1Fragment;
import com.yunbao.common.utils.L; import com.yunbao.common.utils.L;
import com.yunbao.common.utils.MobclickAgent; import com.yunbao.common.utils.MobclickAgent;
import com.yunbao.common.CommonAppConfig; import com.yunbao.common.CommonAppConfig;
@ -436,6 +437,10 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
private static boolean isSw; private static boolean isSw;
public static SVGAVideoEntity drawableTitleCn;
public static SVGAVideoEntity drawableTitleEn;
public static SVGAVideoEntity drawableBg;
public LiveRoomViewHolder setGuardType(int guardType) { public LiveRoomViewHolder setGuardType(int guardType) {
this.guardType = guardType; this.guardType = guardType;
return this; return this;
@ -595,7 +600,43 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
mSVGAImageView = svgaImageView; mSVGAImageView = svgaImageView;
mLiveGiftPrizePoolContainer = liveGiftPrizePoolContainer; mLiveGiftPrizePoolContainer = liveGiftPrizePoolContainer;
this.windowManager = windowManager; 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() { 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)); Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LIVE_WKS));
} }
}); });
wksAndGiftWall.addView(weekView); //wksAndGiftWall.addView(weekView);
wksAndGiftWall.startFlipping(); //wksAndGiftWall.startFlipping();
new LoadDian9TuUtil().loadDian9TuAssets2(mContext, liveWksLayout, "rectangle_new.png", 1); new LoadDian9TuUtil().loadDian9TuAssets2(mContext, liveWksLayout, "rectangle_new.png", 1);
} }
@ -4643,6 +4684,9 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
mRefreshUserListCallback = null; mRefreshUserListCallback = null;
mTimeChargeCallback = null; mTimeChargeCallback = null;
Contexts = null; Contexts = null;
drawableBg = null;
drawableTitleCn = null;
drawableTitleEn = null;
} }
public void clearData() { public void clearData() {

View File

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