This commit is contained in:
2025-11-12 16:40:26 +08:00
parent d4721faa42
commit 8013268816
332 changed files with 12369 additions and 522 deletions

View File

@@ -0,0 +1,144 @@
package com.example.modulevocal.activity.ui.main;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.example.modulevocal.R;
import com.example.modulevocal.adapter.TopUsersAdapter;
import com.xscm.moduleutil.bean.CombinedGiftBean;
import com.xscm.moduleutil.bean.GiftUserWallBean;
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
import com.xscm.moduleutil.utils.ColorManager;
import com.xscm.moduleutil.utils.ImageLoader;
import com.xscm.moduleutil.utils.ImageUtils;
import java.util.ArrayList;
import java.util.List;
/**
* com.example.modulevocal.activity.ui.main
* qx
* 2025/11/5
*/
public class GiftWallAdapter extends BaseAdapter {
private List<GiftUserWallBean.GiftWallBean> mDataList;
public GiftWallAdapter(List<GiftUserWallBean.GiftWallBean> dataList) {
this.mDataList = dataList;
}
public void updateData(List<GiftUserWallBean.GiftWallBean> newDataList) {
this.mDataList = newDataList;
notifyDataSetChanged();
}
@Override
public int getCount() {
return mDataList != null ? mDataList.size() : 0;
}
@Override
public Object getItem(int position) {
return mDataList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// 实现 GridView item 的布局和数据绑定
// 这里返回每个 GridView 项的视图
ViewHolder holder;
if (convertView == null) {
convertView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_gift_wall, parent, false);
holder = new ViewHolder();
holder.textView = convertView.findViewById(R.id.tv_gift_name);
holder.iv_gift_image = convertView.findViewById(R.id.iv_gift_image);
holder.gift_num = convertView.findViewById(R.id.gift_num);
holder.tv_price33 = convertView.findViewById(R.id.tv_price33);
holder.rv_gift_user_list = convertView.findViewById(R.id.rv_gift_user_list);
holder.tv_gift_values = convertView.findViewById(R.id.tv_gift_values);
holder.cl_gift_item = convertView.findViewById(R.id.cl_gift_item);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
GiftUserWallBean.GiftWallBean item = mDataList.get(position);
holder.textView.setText(item.getGift_name());
// ImageUtils.loadHeadCC(item.getBase_image(), holder.iv_gift_image);
holder.tv_price33.setText(item.getGift_price());
TextView tv_number = holder.gift_num;
if (item.is_liang()) {
holder.tv_gift_values.setVisibility(View.VISIBLE);
holder.gift_num.setVisibility(View.VISIBLE);
holder.rv_gift_user_list.setVisibility(View.VISIBLE);
holder.cl_gift_item.setBackgroundResource(com.xscm.moduleutil.R.mipmap.gift_wall_liang);
// helper.getView(R.id.cl_iv_down_on).setBackgroundColor(Color.parseColor("#E6E6E6"));
// 点亮的礼物显示高亮和送礼物的用户
tv_number.setText("共计" + item.getTotal_count() + "");
ImageUtils.loadHeadCC(item.getBase_image(), holder.iv_gift_image);
// 显示送礼物的用户列表
RecyclerView recyclerView = holder.rv_gift_user_list;
// recyclerView.setLayoutManager(new GridLayoutManager(mContext,2,LinearLayoutManager.HORIZONTAL,false));
// recyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false));
recyclerView.setLayoutManager(new LinearLayoutManager(convertView.getContext(), LinearLayoutManager.HORIZONTAL, false) {
@Override
public boolean canScrollHorizontally() {
return false; // 禁止水平滑动
}
});
// TopUsersAdapter topUsersAdapter = new TopUsersAdapter(item.getTop_users());
if (item.getTop_users() != null && item.getTop_users().size() > 0) {
List<CombinedGiftBean.TopUsers> displayUsers = new ArrayList<>();
if (item.getTop_users() != null) {
int maxDisplay = Math.min(2, item.getTop_users().size()); // 最多显示2个
for (int i = 0; i < maxDisplay; i++) {
displayUsers.add(item.getTop_users().get(i));
}
}
TopUsersAdapter topUsersAdapter = new TopUsersAdapter(displayUsers);
recyclerView.setAdapter(topUsersAdapter);
holder.tv_gift_values.setText("" + item.getTop_users().size() + "");
}
} else {
holder.cl_gift_item.setBackgroundResource(com.xscm.moduleutil.R.mipmap.gift_wall_no_liang);
ImageLoader.loadImage(convertView.getContext(), holder.iv_gift_image, item.getBase_image(),0.4f);
holder.tv_gift_values.setVisibility(View.GONE);
holder.gift_num.setVisibility(View.GONE);
holder.rv_gift_user_list.setVisibility(View.GONE);
}
return convertView;
}
static class ViewHolder {
TextView textView;
ImageView iv_gift_image;
TextView tv_gift_values;
TextView gift_num;
TextView tv_price33;
RecyclerView rv_gift_user_list;
ConstraintLayout cl_gift_item;
}
}

View File

@@ -0,0 +1,94 @@
package com.example.modulevocal.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.example.modulevocal.R;
import com.example.modulevocal.activity.ui.main.GiftWallAdapter;
import com.xscm.moduleutil.bean.CombinedGiftBean;
import com.xscm.moduleutil.bean.GiftUserWallBean;
import com.xscm.moduleutil.bean.NobilitList;
import com.xscm.moduleutil.utils.ImageLoader;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.widget.CircularImage;
import java.util.ArrayList;
import java.util.List;
/**
* com.example.modulevocal.adapter
* qx
* 2025/11/10
*/
public class GridNobleAdapter extends BaseAdapter {
private List<NobilitList.Power.PowerItem> mDataList;
public GridNobleAdapter(List<NobilitList.Power.PowerItem> dataList) {
this.mDataList = dataList;
}
public GridNobleAdapter() {
}
public void updateData(List<NobilitList.Power.PowerItem> newDataList) {
this.mDataList = newDataList;
notifyDataSetChanged();
}
@Override
public int getCount() {
return mDataList != null ? mDataList.size() : 0;
}
@Override
public Object getItem(int position) {
return mDataList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// 实现 GridView item 的布局和数据绑定
// 这里返回每个 GridView 项的视图
ViewHolder holder;
if (convertView == null) {
convertView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_noble_tq, parent, false);
holder = new ViewHolder();
holder.tv_hz_mc = convertView.findViewById(R.id.tv_hz_mc);
holder.ci_image = convertView.findViewById(R.id.ci_image);
holder.tv_hz_detail = convertView.findViewById(R.id.tv_hz_detail);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
NobilitList.Power.PowerItem item = mDataList.get(position);
holder.tv_hz_detail.setText(item.getContent());
holder.tv_hz_mc.setText(item.getName());
ImageUtils.loadHeadCC(item.getImage(), holder.ci_image);
return convertView;
}
static class ViewHolder {
TextView tv_hz_mc;
CircularImage ci_image;
TextView tv_hz_detail;
}
}

View File

@@ -0,0 +1,24 @@
package com.example.modulevocal.adapter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.example.modulevocal.R;
import com.xscm.moduleutil.bean.NobilityPrice;
/**
* com.example.modulevocal.adapter
* qx
* 2025/11/10
*/
// NoblePrivilegeAdapter.java
public class NoblePrivilegeAdapter extends BaseQuickAdapter<NobilityPrice.PowerItem, BaseViewHolder> {
public NoblePrivilegeAdapter() {
super(R.layout.item_noble_privilege);
}
@Override
protected void convert(BaseViewHolder helper, NobilityPrice.PowerItem item) {
helper.setText(R.id.tv_title, item.getContent());
}
}

View File

@@ -0,0 +1,54 @@
package com.example.modulevocal.adapter;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.modulevocal.R;
import com.xscm.moduleutil.bean.NobilitList;
import com.xscm.moduleutil.bean.TopRoom;
import com.xscm.moduleutil.utils.ImageLoader;
import com.xscm.moduleutil.utils.ImageUtils;
import com.zhpan.bannerview.BaseBannerAdapter;
import com.zhpan.bannerview.BaseViewHolder;
/**
*com.example.modulevocal.adapter
*qx
*2025/11/10
*
*/
public class NobliityBannerAdapter extends BaseBannerAdapter<NobilitList> {
private OnItemClickListener onItemClickListener;
private int mCurrentPosition;
public int getmCurrentPosition() {
return mCurrentPosition;
}
public void setmCurrentPosition(int mCurrentPosition) {
this.mCurrentPosition = mCurrentPosition;
}
public void setOnItemClickListener(OnItemClickListener listener) {
this.onItemClickListener = listener;
}
@Override
protected void bindData(BaseViewHolder<NobilitList> holder, NobilitList data, int position, int pageSize) {
if (position>=mCurrentPosition) {
ImageUtils.loadHeadCC(data.getImage(), holder.itemView.findViewById(R.id.iv_follow_bg));
// ImageLoader.loadImage(holder.itemView.getContext(),holder.itemView.findViewById(R.id.iv_follow_bg),data.getImage(),1f);
}else {
ImageLoader.loadImage(holder.itemView.getContext(),holder.itemView.findViewById(R.id.iv_follow_bg),data.getImage(),0f);
}
}
public interface OnItemClickListener {
void onItemClick(View view, TopRoom data, int position);
}
@Override
public int getLayoutId(int viewType) {
return R.layout.index_item_nobli;
}
}

View File

@@ -0,0 +1,70 @@
package com.example.modulevocal.activity.ui.main;
import android.content.Context;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.fragment.app.*;
import androidx.viewpager2.adapter.FragmentStateAdapter;
import com.xscm.moduleutil.bean.GiftUserWallBean;
import java.io.Serializable;
/**
* A [FragmentPagerAdapter] that returns a fragment corresponding to
* one of the sections/tabs/pages.
*/
public class SectionsPagerAdapter extends FragmentStateAdapter {
@StringRes
private static final int[] TAB_TITLES = new int[]{com.xscm.moduleutil.R.string.tab_text_1, com.xscm.moduleutil.R.string.tab_text_2};
private final Context mContext;
private GiftUserWallBean giftData; // 添加数据字段
// public SectionsPagerAdapter(Context context, FragmentManager fm, GiftUserWallBean giftData) {
// super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
// this.mContext = context;
// this.giftData = giftData;
// }
public SectionsPagerAdapter(@NonNull FragmentActivity fragmentActivity, GiftUserWallBean giftData) {
super(fragmentActivity);
this.mContext = fragmentActivity;
this.giftData = giftData;
}
@NonNull
@Override
public Fragment createFragment(int position) {
// 创建 Fragment 实例并传递参数
PlaceholderFragment fragment = PlaceholderFragment.newInstance(position + 1);
Bundle args = new Bundle();
// 根据位置传递不同的数据
if (giftData != null) {
if (position == 0) {
// 传递 liang 数据
args.putSerializable("gift_list", (Serializable) giftData.getLiang());
} else if (position == 1) {
// 传递 no_liang 数据
args.putSerializable("gift_list", (Serializable) giftData.getNo_liang());
}
}
args.putInt("section_number", position+1);
fragment.setArguments(args);
return fragment;
}
@Override
public int getItemCount() {
return 2; // 假设 GiftUserWallBean 包含 list 数据结构
}
public CharSequence getPageTitle(int position) {
return mContext.getResources().getString(TAB_TITLES[position]);
}
}