update 礼物墙 布局

This commit is contained in:
2024-07-15 09:47:12 +08:00
parent 250d4832a3
commit 12a1f24101
11 changed files with 725 additions and 451 deletions

View File

@@ -114,6 +114,15 @@ public class GiftWallMainTab1List2Adapter extends RecyclerView.Adapter<GiftWallM
this.isLiveRoom = isLiveRoom;
}
public void addList(List<GiftWallBean.Gift> gifts) {
if (list == null) {
list = new ArrayList<>();
}
int index=list.size()-1;
list.addAll(gifts);
notifyItemRangeChanged(index, gifts.size());
}
public class VH extends RecyclerView.ViewHolder {
SVGAImageView giftBg;
ImageView gift_soles;
@@ -135,7 +144,7 @@ public class GiftWallMainTab1List2Adapter extends RecyclerView.Adapter<GiftWallM
@SuppressLint("DefaultLocale")
public void setData(GiftWallBean.Gift gift, int position) {
gift_name.setText(WordUtil.isNewZh() ? gift.getGift_name() : gift.getGift_name_en());
//ImgLoader.display(itemView.getContext(), gift.getGift_icon(), giftImage, 40, 40);
ImgLoader.display(itemView.getContext(), gift.getGift_icon(), giftImage, 40, 40);
giftBg.setClearsAfterDetached(false);
giftBg.setClearsAfterStop(false);
if (gift.getIlluminate_status() == 1) {

View File

@@ -3,6 +3,7 @@ package com.yunbao.common.adapter;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -11,8 +12,17 @@ import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.RequestBuilder;
import com.bumptech.glide.load.DataSource;
import com.bumptech.glide.load.DecodeFormat;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.engine.GlideException;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.Target;
import com.makeramen.roundedimageview.RoundedImageView;
import com.opensource.svgaplayer.SVGADrawable;
import com.opensource.svgaplayer.SVGAImageView;
@@ -20,9 +30,13 @@ import com.opensource.svgaplayer.SVGAVideoEntity;
import com.yunbao.common.R;
import com.yunbao.common.bean.GiftWallBean;
import com.yunbao.common.bean.GiftWallTab2Bean;
import com.yunbao.common.bean.JsWishBean;
import com.yunbao.common.dialog.GiftWallGiftInfoDialog;
import com.yunbao.common.dialog.GiftWallMainTab2ClassicInfoDialog;
import com.yunbao.common.dialog.GiftWallTab2List2Dialog;
import com.yunbao.common.event.ClosePopupDialogEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
@@ -65,6 +79,15 @@ public class GiftWallMainTab2ListAdapter extends RecyclerView.Adapter<GiftWallMa
notifyDataSetChanged();
}
public void addList(List<GiftWallTab2Bean.Gift> gifts) {
if (list == null) {
list = new ArrayList<>();
}
int index = list.size() - 1;
list.addAll(gifts);
notifyItemRangeChanged(index, gifts.size());
}
public void setStar(boolean star) {
isStar = star;
@@ -105,6 +128,11 @@ public class GiftWallMainTab2ListAdapter extends RecyclerView.Adapter<GiftWallMa
this.isLiveRoom = isLiveRoom;
}
public void clear() {
list.clear();
notifyDataSetChanged();
}
public class VH extends RecyclerView.ViewHolder {
ImageView gift;
TextView gift_name;
@@ -132,7 +160,7 @@ public class GiftWallMainTab2ListAdapter extends RecyclerView.Adapter<GiftWallMa
@SuppressLint("DefaultLocale")
public void setData(GiftWallTab2Bean.Gift giftData, int position) {
gift_name.setText(WordUtil.isNewZh() ? giftData.getGiftName() : giftData.getGiftNameEn());
// ImgLoader.display(itemView.getContext(), giftData.getGiftIcon(), gift, 60, 60);
display(itemView.getContext(), giftData.getGiftIcon(), gift, 60, 60);
if (!StringUtil.isEmpty(giftData.getNamingLiveNicename(), giftData.getNamingUserNicename())) {
anchor_nickname.setVisibility(View.VISIBLE);
user_nickname.setVisibility(View.VISIBLE);
@@ -142,21 +170,10 @@ public class GiftWallMainTab2ListAdapter extends RecyclerView.Adapter<GiftWallMa
imageView8.setVisibility(View.VISIBLE);
tv_wait.setVisibility(View.GONE);
gift_number.setText(String.format(Locale.getDefault(), "%d", giftData.getNeedCoinTotal()));
//ImgLoader.display(mContext, giftData.getNamingLiveAvatar(), user1Avatar, 35, 35);
// ImgLoader.display(mContext, giftData.getNamingUserAvatar(), user2Avatar, 35, 35);
display(mContext, giftData.getNamingLiveAvatar(), user1Avatar, 35, 35);
display(mContext, giftData.getNamingUserAvatar(), user2Avatar, 35, 35);
anchor_nickname.setText(giftData.getNamingLiveNicename());
user_nickname.setText(giftData.getNamingUserNicename());
ViewClicksAntiShake.clicksAntiShake(itemView, () -> {
if (isNowRank) {
new GiftWallGiftInfoDialog(mContext, giftData.getGiftId() + "", toUid, isAnchor)
.setFullWindows(!isLiveRoom)
.setLiveRoom(isLiveRoom)
.setStar(isStar)
.showDialog();
} else {
new GiftWallMainTab2ClassicInfoDialog(mContext, giftData, isAnchor).setFullWindows(!isLiveRoom).showDialog();
}
});
} else {
user1Avatar.setVisibility(View.GONE);
user2Avatar.setVisibility(View.GONE);
@@ -167,6 +184,58 @@ public class GiftWallMainTab2ListAdapter extends RecyclerView.Adapter<GiftWallMa
tv_wait.setVisibility(View.VISIBLE);
itemView.setOnClickListener(null);
}
ViewClicksAntiShake.clicksAntiShake(itemView, () -> {
if (isStar) {
if (isNowRank) {
if (StringUtil.isEmpty(giftData.getNamingLiveNicename(), giftData.getNamingUserNicename())&&isLiveRoom) {
Bus.get().post(new JsWishBean(giftData.getGiftId() + ""));
Bus.get().post(new ClosePopupDialogEvent());
} else {
new GiftWallGiftInfoDialog(mContext, giftData.getGiftId() + "", toUid, isAnchor)
.setFullWindows(!isLiveRoom)
.setLiveRoom(isLiveRoom)
.setStar(isStar)
.showDialog();
}
} else {
new GiftWallMainTab2ClassicInfoDialog(mContext, giftData, isAnchor).setFullWindows(!isLiveRoom).showDialog();
}
} else {
new GiftWallTab2List2Dialog(mContext).setGift(giftData).showDialog();
}
});
}
void display(Context context, String url, ImageView imageView, int width, int height) {
imageView.post(new Runnable() {
@Override
public void run() {
RequestBuilder<Drawable> builder = Glide.with(context)
.load(url);
if (width != -1 && height != -1) {
builder = builder.override(width, height);
}
builder
.thumbnail(1.0f)
.format(DecodeFormat.PREFER_RGB_565)
.skipMemoryCache(true)
.addListener(new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
imageView.setImageDrawable(null);
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
return false;
}
})
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(imageView);
}
});
}
}

View File

@@ -39,13 +39,12 @@ public class GiftWallTab2GiftInfoListItemAdapter extends RecyclerView.Adapter<Gi
@Override
public void onBindViewHolder(@NonNull VH holder, int position) {
// holder.setData(data.get(position), position);
holder.setData(data.get(position), position);
}
@Override
public int getItemCount() {
// return data.size();
return 20;
return data.size();
}
public class VH extends RecyclerView.ViewHolder {

View File

@@ -173,17 +173,6 @@ public class GiftWallMainTab2ClassicInfoDialog extends AbsDialogPopupWindow {
protected void onCreate() {
super.onCreate();
initView();
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) mIvBack.getLayoutParams();
if (isFullWindows) {
params.width = DpUtil.dp2px(20);
mIvBack.setVisibility(View.VISIBLE);
mIvBg.setScaleType(ImageView.ScaleType.CENTER_CROP);
} else {
params.width = DpUtil.dp2px(1);
mIvBack.setVisibility(View.INVISIBLE);
mIvBg.setScaleType(ImageView.ScaleType.FIT_XY);
}
mIvBack.setLayoutParams(params);
}
}

View File

@@ -0,0 +1,65 @@
package com.yunbao.common.dialog;
import android.content.Context;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import com.lxj.xpopup.XPopup;
import com.makeramen.roundedimageview.RoundedImageView;
import com.yunbao.common.R;
import com.yunbao.common.bean.GiftWallTab2Bean;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.WordUtil;
import java.util.Locale;
public class GiftWallTab2List2Dialog extends AbsDialogCenterPopupWindow {
RoundedImageView user1Avatar, user2Avatar;
TextView user1Name, user2Name;
ImageView giftImage;
TextView giftName;
TextView titleValue;
GiftWallTab2Bean.Gift gift;
public GiftWallTab2List2Dialog(@NonNull Context context) {
super(context);
}
public GiftWallTab2List2Dialog setGift(GiftWallTab2Bean.Gift gift) {
this.gift = gift;
return this;
}
@Override
public void buildDialog(XPopup.Builder builder) {
}
@Override
public int bindLayoutId() {
return R.layout.dialog_gift_wall_tab2_list2;
}
@Override
protected void onCreate() {
super.onCreate();
user1Avatar = findViewById(R.id.user1_avatar);
user2Avatar = findViewById(R.id.user2_avatar);
user1Name = findViewById(R.id.user1_name);
user2Name = findViewById(R.id.user2_name);
giftImage = findViewById(R.id.gift);
titleValue = findViewById(R.id.title_value);
giftName = findViewById(R.id.gift_name);
ImgLoader.display(mContext, gift.getGiftIcon(), giftImage);
ImgLoader.display(mContext, gift.getNamingUserAvatar(), user1Avatar);
ImgLoader.display(mContext, gift.getNamingLiveAvatar(), user2Avatar);
user1Name.setText(gift.getNamingUserNicename());
user2Name.setText(gift.getNamingLiveNicename());
giftName.setText(WordUtil.isNewZh() ? gift.getGiftName() : gift.getGiftNameEn());
titleValue.setText(String.format(Locale.getDefault(), "%s", gift.getNeedCoinTotal()));
}
}

View File

@@ -204,6 +204,8 @@ public class GiftWallMainTab2Fragment extends BaseFragment {
}
void initData() {
list1Adapter.clear();
list2Adapter.clear();
LiveNetManager.get(getContext())
.allGiftHall(String.valueOf(type), new HttpCallback<GiftWallTab2Bean>() {
@Override