完成盲盒转盘功能,除去巡乐会,

This commit is contained in:
2025-08-28 22:11:26 +08:00
parent 40a32a4218
commit 05a4be2573
73 changed files with 2783 additions and 684 deletions

5
.gitignore vendored
View File

@@ -13,3 +13,8 @@
.externalNativeBuild
.cxx
local.properties
# ProGuard files
/app/proguard/
/seeds.txt
/usage.txt
/mapping.txt

View File

@@ -30,7 +30,7 @@ isBuildModule=false
android.injected.testOnly=false
APP_VERSION_NAME=1.0.0
APP_VERSION_CODE=102
APP_VERSION_CODE=103
org.gradle.jvm.toolchain.useLegacyAdapters=false
#org.gradle.java.home=C\:\\Users\\qx\\.jdks\\ms-17.0.15

View File

@@ -211,7 +211,20 @@ public class GiftRoomAdapter extends BaseAdapter {
// if (giftModel.isManghe()) {
// viewHolder.tv_gift_change_love_values.setVisibility(View.GONE);
// }
if (giftModel.getGift_bag() == 10) {
viewHolder.item_layout.setBackgroundResource(R.mipmap.gift_tkzj);
viewHolder.tv_gift_name.setText("");
viewHolder.tv_gift_name.setBackgroundResource(R.mipmap.gift_name_tkzj);
} else if (giftModel.getGift_bag() == 11) {
viewHolder.tv_gift_name.setText("");
viewHolder.item_layout.setBackgroundResource(R.mipmap.gift_syzc);
viewHolder.tv_gift_name.setBackgroundResource(R.mipmap.gift_name_syzc);
} else if (giftModel.getGift_bag() == 12) {
viewHolder.tv_gift_name.setText("");
viewHolder.item_layout.setBackgroundResource(R.mipmap.gift_sjzd);
viewHolder.tv_gift_name.setBackgroundResource(R.mipmap.gift_name_skzd);
}
return convertView;
}

View File

@@ -370,7 +370,7 @@ public class CommonAppContext extends MultiDexApplication {
SpUtil.saveUserId(-1);
SpUtil.saveUserBean(new UserBean());
SpUtil.putToken("");
Intent intent = new Intent("com.example.action.LAUNCH_PAGE");
Intent intent = new Intent("com.xscm.action.LAUNCH_PAGE");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
getApplicationContext().startActivity(intent);
// piaoPingManager.unsubscribe();

View File

@@ -1,5 +1,7 @@
package com.xscm.moduleutil.bean;
import java.io.Serializable;
import lombok.Data;
/**
*@author qx
@@ -17,4 +19,8 @@ public class GiftBean {
private String base_image;
private String gift_type;
private int number;
private String createtime;
private String nickname;
private String count;
private String user_id;
}

View File

@@ -32,7 +32,7 @@ public class RoonGiftModel {
private boolean can_send_self;//是否能送自己
private int num;//礼物数量
private int activities_id;//4盲盒 5天空之境
private int gift_bag;
private int gift_bag;//10天空之境 11岁月之城 12时空之巅
public boolean isCan_send_self() {
if ( isManghe()) {
return true;

View File

@@ -1,8 +1,13 @@
package com.xscm.moduleutil.bean.blindboxwheel;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.xscm.moduleutil.bean.GiftBean;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import lombok.Data;
@@ -18,11 +23,32 @@ public class BlindBoxBean {
private String rule;
private String box_price ;
private int is_xlh; ///是否开启巡乐会 0 关闭 1 开启
private XlhData xlh_data;
private Object xlh_data;
private List<GiftBean> gift_list;
public boolean isXlhDataArray() {
return xlh_data instanceof JsonArray || xlh_data instanceof List;
}
public boolean isXlhDataObject() {
return xlh_data instanceof JsonObject || xlh_data instanceof XlhData;
}
public List<XlhData> getXlhDataAsList() {
if (isXlhDataArray()) {
// 转换为List
return (List<XlhData>) xlh_data;
}
return new ArrayList<>();
}
public XlhData getXlhDataAsObject() {
if (isXlhDataObject()) {
return (XlhData) xlh_data;
}
return null;
}
@Data
public class XlhData{
public static class XlhData {
private String waiting_start_num;//等待开始需要达到的次数
private String start_num;//巡乐会开启需要达到的次数
private int current_num;//当前已抽奖次数

View File

@@ -86,7 +86,7 @@ public class WebViewDialog extends BaseDialog<WebViewDialogBinding> {
mBinding.webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
mBinding.webView.requestFocus();
mBinding.webView.loadUrl("https://vespa.qxmier.com/web/index.html#/pages/other/taskDesc");
mBinding.webView.loadUrl(mUrl);
}
private Resources getResources() {

View File

@@ -4,6 +4,9 @@ import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.os.Handler;
import android.os.Looper;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.style.ForegroundColorSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -16,7 +19,11 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.moduleutil.R;
import com.xscm.moduleutil.bean.GiftBean;
import com.xscm.moduleutil.bean.GiftBoxBean;
import com.xscm.moduleutil.utils.ImageUtils;
import java.util.List;
@@ -28,173 +35,54 @@ import java.util.Random;
* @description: 盲盒抽奖展示的视图
*/
// GiftLotteryAdapter.java
public class GiftLotteryAdapter extends RecyclerView.Adapter<GiftLotteryAdapter.ViewHolder> {
public class GiftLotteryAdapter extends BaseQuickAdapter<GiftBean, BaseViewHolder> {
private List<GiftLottery> giftList;
private OnGiftClickListener listener;
private int currentPos = -1; // 当前正在动画的位置
private boolean isForward = true; // 是否正向扫描
private int totalItems;
public GiftLotteryAdapter() {
}
public interface OnGiftClickListener {
void onGiftClick(GiftLottery item);
}
private RecyclerView recyclerView;
@Override
public void onAttachedToRecyclerView(@NonNull RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
this.recyclerView = recyclerView;
super(R.layout.item_gift_lottery);
}
@Override
public void onDetachedFromRecyclerView(@NonNull RecyclerView recyclerView) {
super.onDetachedFromRecyclerView(recyclerView);
this.recyclerView = null;
}
protected void convert(BaseViewHolder helper, GiftBean item) {
helper.setText(R.id.tv_gift_time, item.getCreatetime());
ImageUtils.loadHeadCC(item.getBase_image(),helper.getView(R.id.iv_gift_image));
// 使用 SpannableString 给 "x4" 设置不同颜色
TextView giftNameTextView = helper.getView(R.id.tv_gift_name);
TextView nickNameTextView = helper.getView(R.id.tv_user_name);
if (giftNameTextView != null) {
String baseName = item.getGift_name();
String countText = "x"+item.getCount();
String fullText = baseName + countText;
public GiftLotteryAdapter(List<GiftLottery> list, OnGiftClickListener listener) {
this.giftList = list;
this.listener = listener;
this.totalItems = list.size();
}
SpannableStringBuilder spannable = new SpannableStringBuilder(fullText);
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_gift_lottery, parent, false);
return new ViewHolder(view);
}
// 给 "x4" 部分设置颜色
spannable.setSpan(
new ForegroundColorSpan(mContext.getResources().getColor(R.color.color_C7BF62)), // 替换为实际颜色
baseName.length(),
fullText.length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
);
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
GiftLottery item = giftList.get(position);
holder.bind(item);
// 设置是否选中(仅用于视觉反馈)
if (item.isSelected()) {
holder.itemView.setSelected(true);
holder.itemView.setBackgroundResource(R.mipmap.ic_auction);
} else {
holder.itemView.setSelected(false);
}
}
@Override
public int getItemCount() {
return giftList.size();
}
// 开始扫描动画
public void startScanAnimation() {
if (totalItems == 0) return;
currentPos = -1;
isForward = true;
scanNext();
}
private void scanNext() {
if (currentPos >= totalItems) {
// 正向结束,开始反向
isForward = false;
currentPos = totalItems - 1;
scanNext();
return;
giftNameTextView.setText(spannable);
}
if (currentPos < 0) {
// 初始状态,开始正向
currentPos = 0;
animateItem(currentPos);
return;
if (nickNameTextView!=null){
nickNameTextView.setText(item.getNickname());
String nickName = "赠予";
String fullText = nickName + " " + item.getNickname();
SpannableStringBuilder spannable = new SpannableStringBuilder(fullText);
// 给 "x4" 部分设置颜色
spannable.setSpan(
new ForegroundColorSpan(mContext.getResources().getColor(R.color.color_C7BF62)), // 替换为实际颜色
0,
nickName.length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
);
nickNameTextView.setText(spannable);
}
// 移动到下一个位置
if (isForward) {
currentPos++;
if (currentPos >= totalItems) {
// 正向结束,准备反向
isForward = false;
currentPos = totalItems - 1;
scanNext();
return;
}
} else {
currentPos--;
if (currentPos < 0) {
// 反向结束,停止动画
finishScan();
return;
}
}
// 执行动画
animateItem(currentPos);
}
private void animateItem(int pos) {
View itemView = getViewAtPosition(pos);
if (itemView == null) return;
// 缩放动画
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.playTogether(
ObjectAnimator.ofFloat(itemView, "scaleX", 1f, 1.2f),
ObjectAnimator.ofFloat(itemView, "scaleY", 1f, 1.2f)
);
animatorSet.setDuration(200);
animatorSet.setInterpolator(new AccelerateDecelerateInterpolator());
animatorSet.start();
// 延迟下一次动画
Handler handler = new Handler(Looper.getMainLooper());
handler.postDelayed(() -> {
scanNext();
}, 300); // 每个 item 动画间隔 300ms
}
private View getViewAtPosition(int position) {
if (recyclerView == null || recyclerView.getLayoutManager() == null) {
return null;
}
return recyclerView.getLayoutManager().findViewByPosition(position);
}
private int getBindingAdapterPositionForView(View view) {
RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) view.getLayoutParams();
return params.getViewLayoutPosition();
}
private void finishScan() {
// 扫描完成,随机选择一个中奖项
Random random = new Random();
int winnerIndex = random.nextInt(totalItems);
giftList.get(winnerIndex).setSelected(true);
notifyItemChanged(winnerIndex);
}
static class ViewHolder extends RecyclerView.ViewHolder {
ImageView imgIcon;
TextView tvName, tvCount;
ViewHolder(@NonNull View itemView) {
super(itemView);
imgIcon = itemView.findViewById(R.id.img_gift_icon);
tvName = itemView.findViewById(R.id.tv_gift_name);
tvCount = itemView.findViewById(R.id.tv_gift_count);
}
void bind(GiftLottery item) {
imgIcon.setImageResource(Integer.parseInt(item.getIcon()));
tvName.setText(item.getName());
tvCount.setText(item.getNumber());
}
}
}

View File

@@ -4,19 +4,35 @@ import android.app.Activity;
import com.xscm.moduleutil.activity.IPresenter;
import com.xscm.moduleutil.activity.IView;
import com.xscm.moduleutil.bean.GiftBean;
import com.xscm.moduleutil.bean.WalletBean;
import com.xscm.moduleutil.bean.blindboxwheel.BlindBoxBean;
import com.xscm.moduleutil.bean.blindboxwheel.BlindReslutBean;
import java.util.List;
public class GiftLotteryContacts {
public interface View extends IView<Activity> {
void getGiftListSuccess(BlindBoxBean blindBoxBean);
void drawGiftListSuccess(BlindReslutBean blindReslutBean);
void getMyRecordSuccess(List<GiftBean> data);
void getAllRecordSuccess(List<GiftBean> data);
void finishRefreshLoadMore();
void wallet(WalletBean walletBean);
}
public interface IRoomPre extends IPresenter {
void getGiftList(String giftBagId,String roomId);
void drawGiftList(String giftBagId,String gift_user_ids,String roomId,String num);
void getMyRecord(String giftBagId,String page,String pageSize,int type);//我的抽奖记录 type: 1:我的抽奖 2全服抽奖
void giftSend(String send_id);
void wallet();
}
}

View File

@@ -8,8 +8,10 @@ import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
import android.view.View;
import android.view.Window;
import android.widget.GridView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -22,12 +24,15 @@ import com.xscm.moduleutil.R;
import com.xscm.moduleutil.activity.IPresenter;
import com.xscm.moduleutil.base.BaseMvpDialogFragment;
import com.xscm.moduleutil.bean.GiftBean;
import com.xscm.moduleutil.bean.WalletBean;
import com.xscm.moduleutil.bean.blindboxwheel.BlindBoxBean;
import com.xscm.moduleutil.bean.blindboxwheel.BlindReslutBean;
import com.xscm.moduleutil.databinding.DialogGiftLotteryBinding;
import com.xscm.moduleutil.dialog.WebViewDialog;
import com.xscm.moduleutil.event.LotteryEvent;
import com.xscm.moduleutil.http.RetrofitClient;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.widget.CircularProgressView;
import com.xscm.moduleutil.widget.GiftCardView;
import java.io.IOException;
@@ -48,18 +53,19 @@ public class GiftLotteryDialog extends BaseMvpDialogFragment<GiftLotteryPresente
private String roomId;
private String userIds;
///共有12个礼物
private int giftMaxCount = 12;
///最少转6圈
private int minRoundCount = 6;
///距离4个的时候放慢
/// 共有12个礼物
private int giftMaxCount;
/// 最少转6圈
private int minRoundCount;
/// 距离4个的时候放慢
private int toSlowCount = 4;
private List<GiftCardView> allViewsArray=new ArrayList<>() ;//视图的集合
private List<GiftCardView> allViewsArray ;//视图的集合
private int targetIndex;//目标的下标
private List<Integer> targetArrayIndex=new ArrayList<>();//中奖的下标
private List<Integer> finishTargetArrayIndex=new ArrayList<>();
private int currentIndex;///当前转到第几个下标
private List<Integer> targetArrayIndex = new ArrayList<>();//中奖的下标
private List<Integer> finishTargetArrayIndex = new ArrayList<>();
private int currentIndex;
/// 当前转到第几个下标
private int roundCount;//转动多少次
private double delayTime;//延时
@@ -71,13 +77,20 @@ public class GiftLotteryDialog extends BaseMvpDialogFragment<GiftLotteryPresente
private Handler handler;
private Runnable timerRunnable;//定时器
private int startType;//类型点击的事抽奖1次还是10次还是100次
private CircularProgressView circularProgress;
private List<GiftBean> giftLists = new ArrayList<>();
private LotteryEvent userIdType; // 新增枚举类型字段
private int type;//10:对应天空之境 11对应岁月之城 12对应时空之巅
private GiftLotteryDialogFragment giftLotteryDialogFragment;
private List<Integer> reslutListAll = new ArrayList<>();
private List<GiftBean> giftLists=new ArrayList<>();
@Override
protected GiftLotteryPresenter bindPresenter() {
return new GiftLotteryPresenter(this, getActivity());
}
public static GiftLotteryDialog newInstance(String giftBagId,String roomId,String userIds) {
public static GiftLotteryDialog newInstance(String giftBagId, String roomId, String userIds) {
GiftLotteryDialog dialog = new GiftLotteryDialog();
Bundle args = new Bundle();
args.putString("giftBagId", giftBagId);
@@ -86,6 +99,7 @@ public class GiftLotteryDialog extends BaseMvpDialogFragment<GiftLotteryPresente
dialog.setArguments(args);
return dialog;
}
@Nullable
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
@@ -94,138 +108,297 @@ public class GiftLotteryDialog extends BaseMvpDialogFragment<GiftLotteryPresente
dialog.setCancelable(true);
return dialog;
}
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
roomId = getArguments().getString("roomId");
giftBagId = getArguments().getString("giftBagId");
userIds = getArguments().getString("userIds");
// 根据userIds确定类型
userIdType = LotteryEvent.fromLotteryEvent(giftBagId);
}
@Override
protected void initData() {
MvpPre.getGiftList(giftBagId, roomId);
}
private List<Integer> getTargetArrayIndex() {
if (targetArrayIndex == null) {
targetArrayIndex = new ArrayList<>();
}
return targetArrayIndex;
}
private List<Integer> getFinishTargetArrayIndex() {
if (finishTargetArrayIndex == null) {
finishTargetArrayIndex = new ArrayList<>();
}
return finishTargetArrayIndex;
MvpPre.wallet();
}
@Override
protected void initView() {
// 根据不同的用户类型显示不同的界面
setupUIBasedOnUserType();
allViewsArray.add(mBinding.gift1);
allViewsArray.add(mBinding.gift2);
allViewsArray.add(mBinding.gift3);
allViewsArray.add(mBinding.gift4);
allViewsArray.add(mBinding.gift5);
allViewsArray.add(mBinding.gift6);
allViewsArray.add(mBinding.gift7);
allViewsArray.add(mBinding.gift8);
allViewsArray.add(mBinding.gift9);
allViewsArray.add(mBinding.gift10);
allViewsArray.add(mBinding.gift11);
allViewsArray.add(mBinding.gift12);
mBinding.llOne.setOnClickListener(this::onClisk);
mBinding.llTen.setOnClickListener(this::onClisk);
mBinding.llHundred.setOnClickListener(this::onClisk);
mBinding.swLockYx.setOnClickListener(this::onClisk);
mBinding.swTex.setOnClickListener(this::onClisk);
mBinding.tvGz.setOnClickListener(this::onClisk);
init(0);
mBinding.swLockYx.setChecked(true);
mBinding.swTex.setChecked(true);
isOpenSpecial=true;
isOpenSound=true;
}
private void setupUIBasedOnUserType() {
switch (userIdType) {
case MIRROR_SKY://天空之境
setupSingleUserUI();
type = 10;
break;
case CITY_TIME://岁月之巅
setupMultiUserUI();
type = 11;
break;
case PINNACLE_TIME://时空之巅
setupAllUsersUI();
type = 12;
break;
}
}
/// 天空之境
private void setupSingleUserUI() {
allViewsArray= new ArrayList<>();
mBinding.mirroeSky.getRoot().setVisibility(View.VISIBLE);
giftMaxCount = 12;
minRoundCount = 6;
allViewsArray.add(mBinding.mirroeSky.gift1);
allViewsArray.add(mBinding.mirroeSky.gift2);
allViewsArray.add(mBinding.mirroeSky.gift3);
allViewsArray.add(mBinding.mirroeSky.gift4);
allViewsArray.add(mBinding.mirroeSky.gift5);
allViewsArray.add(mBinding.mirroeSky.gift6);
allViewsArray.add(mBinding.mirroeSky.gift7);
allViewsArray.add(mBinding.mirroeSky.gift8);
allViewsArray.add(mBinding.mirroeSky.gift9);
allViewsArray.add(mBinding.mirroeSky.gift10);
allViewsArray.add(mBinding.mirroeSky.gift11);
allViewsArray.add(mBinding.mirroeSky.gift12);
mBinding.mirroeSky.llOne.setOnClickListener(this::onClisk);
mBinding.mirroeSky.llTen.setOnClickListener(this::onClisk);
mBinding.mirroeSky.llHundred.setOnClickListener(this::onClisk);
mBinding.mirroeSky.swLockYx.setOnClickListener(this::onClisk);
mBinding.mirroeSky.swTex.setOnClickListener(this::onClisk);
mBinding.mirroeSky.tvGz.setOnClickListener(this::onClisk);
mBinding.mirroeSky.tvJc.setOnClickListener(this::onClisk);
mBinding.mirroeSky.tvJl.setOnClickListener(this::onClisk);
init(0);
mBinding.mirroeSky.swLockYx.setChecked(true);
mBinding.mirroeSky.swTex.setChecked(true);
isOpenSpecial = true;
isOpenSound = true;
circularProgress = mBinding.mirroeSky.circularProgressView;
circularProgress.setProgress(0);
}
//岁月之城
private void setupMultiUserUI() {
allViewsArray= new ArrayList<>();
mBinding.cityTime.getRoot().setVisibility(View.VISIBLE);
giftMaxCount = 10;
minRoundCount = 7;
allViewsArray.add(mBinding.cityTime.gift1);
allViewsArray.add(mBinding.cityTime.gift2);
allViewsArray.add(mBinding.cityTime.gift3);
allViewsArray.add(mBinding.cityTime.gift4);
allViewsArray.add(mBinding.cityTime.gift5);
allViewsArray.add(mBinding.cityTime.gift6);
allViewsArray.add(mBinding.cityTime.gift7);
allViewsArray.add(mBinding.cityTime.gift8);
allViewsArray.add(mBinding.cityTime.gift9);
allViewsArray.add(mBinding.cityTime.gift10);
mBinding.cityTime.llOne.setOnClickListener(this::onClisk);
mBinding.cityTime.llTen.setOnClickListener(this::onClisk);
mBinding.cityTime.llHundred.setOnClickListener(this::onClisk);
mBinding.cityTime.swLockYx.setOnClickListener(this::onClisk);
mBinding.cityTime.swTex.setOnClickListener(this::onClisk);
mBinding.cityTime.tvGz.setOnClickListener(this::onClisk);
mBinding.cityTime.tvJc.setOnClickListener(this::onClisk);
mBinding.cityTime.tvJl.setOnClickListener(this::onClisk);
init2(0);
mBinding.cityTime.swLockYx.setChecked(true);
mBinding.cityTime.swTex.setChecked(true);
isOpenSpecial = true;
isOpenSound = true;
circularProgress = mBinding.cityTime.circularProgressView;
circularProgress.setProgress(0);
}
//时空之巅
private void setupAllUsersUI() {
allViewsArray= new ArrayList<>();
mBinding.pinnacleTime.getRoot().setVisibility(View.VISIBLE);
giftMaxCount = 10;
minRoundCount = 7;
allViewsArray.add(mBinding.pinnacleTime.gift1);
allViewsArray.add(mBinding.pinnacleTime.gift2);
allViewsArray.add(mBinding.pinnacleTime.gift3);
allViewsArray.add(mBinding.pinnacleTime.gift4);
allViewsArray.add(mBinding.pinnacleTime.gift5);
allViewsArray.add(mBinding.pinnacleTime.gift6);
allViewsArray.add(mBinding.pinnacleTime.gift7);
allViewsArray.add(mBinding.pinnacleTime.gift8);
allViewsArray.add(mBinding.pinnacleTime.gift9);
allViewsArray.add(mBinding.pinnacleTime.gift10);
mBinding.pinnacleTime.llOne.setOnClickListener(this::onClisk);
mBinding.pinnacleTime.llTen.setOnClickListener(this::onClisk);
mBinding.pinnacleTime.llHundred.setOnClickListener(this::onClisk);
mBinding.pinnacleTime.swLockYx.setOnClickListener(this::onClisk);
mBinding.pinnacleTime.swTex.setOnClickListener(this::onClisk);
mBinding.pinnacleTime.tvGz.setOnClickListener(this::onClisk);
mBinding.pinnacleTime.tvJc.setOnClickListener(this::onClisk);
mBinding.pinnacleTime.tvJl.setOnClickListener(this::onClisk);
init3(0);
mBinding.pinnacleTime.swLockYx.setChecked(true);
mBinding.pinnacleTime.swTex.setChecked(true);
isOpenSpecial = true;
isOpenSound = true;
circularProgress = mBinding.pinnacleTime.circularProgressView;
circularProgress.setProgress(0);
}
private void onClisk(View view) {
int id = view.getId();
if (id == R.id.ll_one){
if (id == R.id.ll_one) {
if (!isDrawing) {
init(1);
startType = 1;
MvpPre.drawGiftList(giftBagId, userIds, roomId, "1");
}else {
} else {
com.hjq.toast.ToastUtils.show("正在抽奖中...");
return;
}
}else if (id == R.id.ll_ten){
} else if (id == R.id.ll_ten) {
if (!isDrawing) {
init(2);
startType = 2;
MvpPre.drawGiftList(giftBagId, userIds, roomId, "10");
}else {
} else {
com.hjq.toast.ToastUtils.show("正在抽奖中...");
}
}else if (id == R.id.ll_hundred){
} else if (id == R.id.ll_hundred) {//抽奖100次
if (!isDrawing) {
init(3);
startType = 3;
MvpPre.drawGiftList(giftBagId, userIds, roomId, "100");
}else {
} else {
com.hjq.toast.ToastUtils.show("正在抽奖中...");
}
}else if (id == R.id.sw_lock_yx){
isOpenSound=mBinding.swLockYx.isChecked();
}else if (id == R.id.sw_tex){
isOpenSpecial=mBinding.swTex.isChecked();
}else if (id==R.id.tv_gz){
} else if (id == R.id.sw_lock_yx) {//音效
isOpenSound = mBinding.mirroeSky.swLockYx.isChecked();
} else if (id == R.id.sw_tex) {//特效
isOpenSpecial = mBinding.mirroeSky.swTex.isChecked();
} else if (id == R.id.tv_gz) {//规则
WebViewDialog webViewDialog = new WebViewDialog(getActivity(), getRule_url);
webViewDialog.show();
// ARouter.getInstance().build(ARouteConstants.H5).withString("url", getRule_url).withString("title", "盲盒规则").navigation();
} else if (id == R.id.tv_jc) {
if (giftLists != null && !giftLists.isEmpty()) {
PrizePoolDialog prizePoolDialog = new PrizePoolDialog(getActivity());
prizePoolDialog.updateData(giftLists, type);
prizePoolDialog.show();
} else {
com.hjq.toast.ToastUtils.show("奖池数据加载中,请稍后再试");
}
} else if (id == R.id.tv_jl) {
// 如果当前dialog存在且正在显示先关闭
if (giftLotteryDialogFragment != null && giftLotteryDialogFragment.isVisible()) {
giftLotteryDialogFragment.dismiss();
}
giftLotteryDialogFragment = GiftLotteryDialogFragment.newInstance(giftBagId);
giftLotteryDialogFragment.show(getChildFragmentManager(), "GiftLotteryDialogFragment");
}
}
private void init(int type) {
if (type == 1) {
mBinding.llOne.setBackground(getResources().getDrawable(R.mipmap.chou_x));
mBinding.llTen.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.llHundred.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.mirroeSky.llOne.setBackground(getResources().getDrawable(R.mipmap.chou_x));
mBinding.mirroeSky.llTen.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.mirroeSky.llHundred.setBackground(getResources().getDrawable(R.mipmap.chou_w));
} else if (type == 2) {
mBinding.llOne.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.llTen.setBackground(getResources().getDrawable(R.mipmap.chou_x));
mBinding.llHundred.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.mirroeSky.llOne.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.mirroeSky.llTen.setBackground(getResources().getDrawable(R.mipmap.chou_x));
mBinding.mirroeSky.llHundred.setBackground(getResources().getDrawable(R.mipmap.chou_w));
} else if (type == 3) {
mBinding.llOne.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.llTen.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.llHundred.setBackground(getResources().getDrawable(R.mipmap.chou_x));
}else {
mBinding.llOne.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.llTen.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.llHundred.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.mirroeSky.llOne.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.mirroeSky.llTen.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.mirroeSky.llHundred.setBackground(getResources().getDrawable(R.mipmap.chou_x));
} else {
mBinding.mirroeSky.llOne.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.mirroeSky.llTen.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.mirroeSky.llHundred.setBackground(getResources().getDrawable(R.mipmap.chou_w));
}
}
///定时器
private void init2(int type) {
if (type == 1) {
mBinding.cityTime.llOne.setBackground(getResources().getDrawable(R.mipmap.chou_x));
mBinding.cityTime.llTen.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.cityTime.llHundred.setBackground(getResources().getDrawable(R.mipmap.chou_w));
} else if (type == 2) {
mBinding.cityTime.llOne.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.cityTime.llTen.setBackground(getResources().getDrawable(R.mipmap.chou_x));
mBinding.cityTime.llHundred.setBackground(getResources().getDrawable(R.mipmap.chou_w));
} else if (type == 3) {
mBinding.cityTime.llOne.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.cityTime.llTen.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.cityTime.llHundred.setBackground(getResources().getDrawable(R.mipmap.chou_x));
} else {
mBinding.cityTime.llOne.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.cityTime.llTen.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.cityTime.llHundred.setBackground(getResources().getDrawable(R.mipmap.chou_w));
}
}
private void init3(int type) {
if (type == 1) {
mBinding.pinnacleTime.llOne.setBackground(getResources().getDrawable(R.mipmap.chou_x));
mBinding.pinnacleTime.llTen.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.pinnacleTime.llHundred.setBackground(getResources().getDrawable(R.mipmap.chou_w));
} else if (type == 2) {
mBinding.pinnacleTime.llOne.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.pinnacleTime.llTen.setBackground(getResources().getDrawable(R.mipmap.chou_x));
mBinding.pinnacleTime.llHundred.setBackground(getResources().getDrawable(R.mipmap.chou_w));
} else if (type == 3) {
mBinding.pinnacleTime.llOne.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.pinnacleTime.llTen.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.pinnacleTime.llHundred.setBackground(getResources().getDrawable(R.mipmap.chou_x));
} else {
mBinding.pinnacleTime.llOne.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.pinnacleTime.llTen.setBackground(getResources().getDrawable(R.mipmap.chou_w));
mBinding.pinnacleTime.llHundred.setBackground(getResources().getDrawable(R.mipmap.chou_w));
}
}
/// 定时器
public void startFastAnimate() {
if (allViewsArray.isEmpty()) {
return;
}
for (GiftCardView gridView : allViewsArray) {
gridView.setSelected(false);
gridView.stopPulseAnimationWithLayer();
}
currentGiftCardView = allViewsArray.get(0);
currentGiftCardView.setSelected(true);
// 停止之前的定时器
stopFastAnimate();
if (isOpenSound) {
// 假设此处有播放音乐的逻辑
playSound("draw_music.mp3");
isOpenSound=false;
// isOpenSound=false;
}
roundCount = 0;
delayTime = 0.2;
delayTime = 0.22;
handler = new Handler(Looper.getMainLooper());
timerRunnable = new Runnable() {
@@ -246,9 +419,11 @@ public class GiftLotteryDialog extends BaseMvpDialogFragment<GiftLotteryPresente
giftView.setSelected(true);
} else {
giftView.setSelected(false);
giftView.stopPulseAnimationWithLayer();
}
} else {
currentGiftCardView.setSelected(false);
currentGiftCardView.stopPulseAnimationWithLayer();
}
currentIndex = roundCount % giftMaxCount;
@@ -270,22 +445,19 @@ public class GiftLotteryDialog extends BaseMvpDialogFragment<GiftLotteryPresente
iterator.remove(); // 安全地移除元素
finishTargetArrayIndex.add(index);
foundTarget = true;
if (!isOpenSound){
if (player != null) {
player.stop();
player.release();
player = null;
}
}
if (!isOpenSpecial){
if (!isOpenSpecial || !isOpenSound) {
playSound("draw.mp3");
}
break;
}
}
delayTime = 0.03;
if (targetArrayIndex.size()==0) {
isDrawing = false;
if (targetArrayIndex.isEmpty()) {
String result = TextUtils.join(",", reslutListAll);
MvpPre.giftSend(result);
MvpPre.wallet();
stopFastAnimate();
return;
}
@@ -299,22 +471,29 @@ public class GiftLotteryDialog extends BaseMvpDialogFragment<GiftLotteryPresente
handler.postDelayed(this, (long) (delayTime * 1000));
}
};
if (handler != null && timerRunnable != null) {
if (handler != null) {
// 启动定时器
handler.postDelayed(timerRunnable, (long) (0.2 * 1000));
}
}
public void stopFastAnimate() {
isDrawing = false; // 设置标志位
if (handler != null && timerRunnable != null) {
handler.removeCallbacksAndMessages(null); // 移除所有回调和消息
handler = null; // 清空引用
isDrawing = false;
if (handler != null) {
// 移除特定的 Runnable更精确
if (timerRunnable != null) {
handler.removeCallbacks(timerRunnable);
}
// 或者移除所有回调(更彻底)
handler.removeCallbacksAndMessages(null);
handler = null;
}
// timerRunnable = null;
timerRunnable = null;
}
private MediaPlayer player;
// 播放音频的方法
private void playSound(String fileName) {
try {
@@ -329,6 +508,7 @@ public class GiftLotteryDialog extends BaseMvpDialogFragment<GiftLotteryPresente
e.printStackTrace();
}
}
private MediaPlayer getPlayer(String fileName) {
if (player == null) {
try {
@@ -354,12 +534,14 @@ public class GiftLotteryDialog extends BaseMvpDialogFragment<GiftLotteryPresente
protected int getLayoutId() {
return R.layout.dialog_gift_lottery;
}
private String getRule_url;
@Override
public void getGiftListSuccess(BlindBoxBean blindBoxBean) {
if (blindBoxBean != null && blindBoxBean.getGift_list() != null) {
giftLists = blindBoxBean.getGift_list();
getRule_url=blindBoxBean.getRule_url();
getRule_url = blindBoxBean.getRule_url();
// 确保数据数量不超过视图数量
int size = Math.min(giftLists.size(), allViewsArray.size());
@@ -374,6 +556,20 @@ public class GiftLotteryDialog extends BaseMvpDialogFragment<GiftLotteryPresente
for (int i = size; i < allViewsArray.size(); i++) {
allViewsArray.get(i).setVisibility(View.GONE);
}
BlindBoxBean.XlhData xlhData = blindBoxBean.getXlhDataAsObject();
if (xlhData != null ) {
if (giftBagId.equals("10")) {
circularProgress.setProgress(xlhData.getCurrent_num());
mBinding.mirroeSky.tvProgress.setText(xlhData.getCurrent_num() + "%");
}else if (giftBagId.equals("11")){
circularProgress.setProgress(xlhData.getCurrent_num());
mBinding.cityTime.tvProgress.setText(xlhData.getCurrent_num() + "%");
}else if (giftBagId.equals("12")){
circularProgress.setProgress(xlhData.getCurrent_num());
mBinding.pinnacleTime.tvProgress.setText(xlhData.getCurrent_num() + "%");
}
}
}
}
@@ -388,10 +584,12 @@ public class GiftLotteryDialog extends BaseMvpDialogFragment<GiftLotteryPresente
for (int i = 0; i < blindReslutBean.getReslut_list().size(); i++) {
BlindReslutBean.ReslutList reslutList = blindReslutBean.getReslut_list().get(i);
reslutListAll.add(reslutList.getGift_id());
for (int j = 0; j < giftLists.size(); j++) {
if (giftLists.get(j).getGift_id().equals(reslutList.getGift_id() + "")) {
targetArrayIndex.add(j);
if (j < 12) {
if (j < giftMaxCount) {
GiftCardView giftCardView = allViewsArray.get(j);
GiftBean giftBean = giftLists.get(j);
giftBean.setNumber(reslutList.getCount());
@@ -401,6 +599,9 @@ public class GiftLotteryDialog extends BaseMvpDialogFragment<GiftLotteryPresente
giftCardView.setSelected(true);
playSound("draw.mp3");
// 不要设置isDrawing=true这会影响动画控制
MvpPre.wallet();
String result = TextUtils.join(",", reslutListAll);
MvpPre.giftSend(result);
}
}
}
@@ -412,6 +613,35 @@ public class GiftLotteryDialog extends BaseMvpDialogFragment<GiftLotteryPresente
}
}
@Override
public void getMyRecordSuccess(List<GiftBean> data) {
}
@Override
public void getAllRecordSuccess(List<GiftBean> data) {
}
@Override
public void finishRefreshLoadMore() {
}
@Override
public void wallet(WalletBean walletBean) {
if (walletBean != null){
if (type==10){
mBinding.mirroeSky.tvIcon.setText(walletBean.getCoin());
}else if (type==11){
mBinding.cityTime.tvIcon.setText(walletBean.getCoin());
}else if (type==12){
mBinding.pinnacleTime.tvIcon.setText(walletBean.getCoin());
}
}
}
@Override
public void onDestroyView() {
super.onDestroyView();
@@ -464,7 +694,7 @@ public class GiftLotteryDialog extends BaseMvpDialogFragment<GiftLotteryPresente
}
// 清理视图引用
clearViewReferences();
if (player != null){
if (player != null) {
player.release();
player = null;
}

View File

@@ -0,0 +1,203 @@
package com.xscm.moduleutil.dialog.giftLottery;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.GridLayoutManager;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
import com.xscm.moduleutil.R;
import com.xscm.moduleutil.base.BaseMvpDialogFragment;
import com.xscm.moduleutil.bean.GiftBean;
import com.xscm.moduleutil.bean.WalletBean;
import com.xscm.moduleutil.bean.blindboxwheel.BlindBoxBean;
import com.xscm.moduleutil.bean.blindboxwheel.BlindReslutBean;
import com.xscm.moduleutil.databinding.DialogGiftLotteryFragmentBinding;
import com.xscm.moduleutil.widget.pagerecyclerview.PagerGridSnapHelper;
import java.util.List;
/**
*@author qx
*@data 2025/8/28
*@description: 盲盒转盘中奖记录
*/
public class GiftLotteryDialogFragment extends BaseMvpDialogFragment<GiftLotteryPresenter, DialogGiftLotteryFragmentBinding> implements GiftLotteryContacts.View{
private int page=1;
private String giftBagId;
private int type=1;
private GiftLotteryAdapter adapter;
@Override
protected GiftLotteryPresenter bindPresenter() {
return new GiftLotteryPresenter(this,getSelfActivity());
}
public static GiftLotteryDialogFragment newInstance(String giftBagId) {
Bundle args = new Bundle();
GiftLotteryDialogFragment fragment = new GiftLotteryDialogFragment();
args.putString("giftBagId", giftBagId);
fragment.setArguments(args);
return fragment;
}
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
giftBagId = getArguments().getString("giftBagId");
}
@Override
protected void initData() {
MvpPre.getMyRecord(giftBagId, "1", "20",type);
}
@Override
protected void initView() {
if (giftBagId.equals("10")){
mBinding.clRoot.setBackgroundResource(R.mipmap.tkzj);
mBinding.imJc.setImageResource(R.mipmap.jilu);
}else if (giftBagId.equals("11")){
mBinding.clRoot.setBackgroundResource(R.mipmap.syzc);
mBinding.imJc.setImageResource(R.mipmap.syzc_jl);
}else if (giftBagId.equals("12")){
mBinding.clRoot.setBackgroundResource(R.mipmap.skzj);
mBinding.imJc.setImageResource(R.mipmap.skzl_jl);
}
mBinding.smartRefreshLayout.setOnRefreshLoadMoreListener(new OnRefreshLoadMoreListener() {
@Override
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
page++;
MvpPre.getMyRecord(giftBagId, page+"", "20",type);
}
@Override
public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
page = 1;
MvpPre.getMyRecord(giftBagId, page+"", "20",type);
}
});
mBinding.textView1.setOnClickListener(this::onClick);
mBinding.textView2.setOnClickListener(this::onClick);
// 根据屏幕密度调整行数和列数
int rows, columns;
float density = this.getResources().getDisplayMetrics().density;
if (density <= 2.0) { // 低密度屏幕如mdpi, hdpi
rows = 3;
columns = 3;
} else if (density <= 3.0) { // 中密度屏幕如xhdpi
rows = 4;
columns = 3;
} else { // 高密度屏幕如xxhdpi, xxxhdpi
rows = 5;
columns = 3;
}
adapter=new GiftLotteryAdapter();
// PagerGridLayoutManager layoutManager = new PagerGridLayoutManager(rows, columns, PagerGridLayoutManager.VERTICAL);
GridLayoutManager layoutManager = new GridLayoutManager(getActivity(), 3);
mBinding.recyclerView.setLayoutManager(layoutManager);
mBinding.recyclerView.setOnFlingListener(null);
// 设置滚动辅助工具
PagerGridSnapHelper pageSnapHelper = new PagerGridSnapHelper();
pageSnapHelper.attachToRecyclerView(mBinding.recyclerView);
mBinding.recyclerView.setAdapter(adapter);
}
private void onClick(View view) {
int id = view.getId();
if (id==R.id.textView1){
dianj(1);
}else if (id==R.id.textView2){
dianj(2);
}
}
public void dianj(int type1){
if (type1==1) {
type=1;
setTextViewStyle(mBinding.textView2, false);
setTextViewStyle(mBinding.textView1, true);
}else if (type1==2){
type=2;
setTextViewStyle(mBinding.textView2, true);
setTextViewStyle(mBinding.textView1, false);
}
MvpPre.getMyRecord(giftBagId, page+"", "20",type);
}
private void setTextViewStyle(TextView textView, boolean isSelected) {
if (isSelected) {
textView.setTextColor(getResources().getColor(R.color.white));
textView.setTextSize(16);
textView.setBackground(getResources().getDrawable(R.mipmap.tab_dy));
} else {
textView.setTextColor(getResources().getColor(R.color.color_5B5B5B));
textView.setTextSize(14);
textView.setBackgroundColor(getResources().getColor(R.color.transparent));
}
}
@Override
protected int getLayoutId() {
return R.layout.dialog_gift_lottery_fragment;
}
@Override
public void getGiftListSuccess(BlindBoxBean blindBoxBean) {
}
@Override
public void drawGiftListSuccess(BlindReslutBean blindReslutBean) {
}
@Override
public void getMyRecordSuccess(List<GiftBean> data) {
if (data != null){
if (page==1){
adapter.setNewData(data);
}else {
adapter.addData(data);
}
}
}
@Override
public void getAllRecordSuccess(List<GiftBean> data) {
if (data != null){
if (page==1){
adapter.setNewData(data);
}else {
adapter.addData(data);
}
}
}
@Override
public void finishRefreshLoadMore() {
mBinding.smartRefreshLayout.finishRefresh();
mBinding.smartRefreshLayout.finishLoadMore();
}
@Override
public void wallet(WalletBean walletBean) {
}
}

View File

@@ -2,6 +2,8 @@ package com.xscm.moduleutil.dialog.giftLottery;
import android.content.Context;
import com.xscm.moduleutil.bean.GiftBean;
import com.xscm.moduleutil.bean.WalletBean;
import com.xscm.moduleutil.bean.blindboxwheel.BlindBoxBean;
import com.xscm.moduleutil.bean.blindboxwheel.BlindReslutBean;
import com.xscm.moduleutil.http.BaseObserver;
@@ -55,4 +57,72 @@ public class GiftLotteryPresenter extends BasePresenter<GiftLotteryContacts.View
}
});
}
@Override
public void getMyRecord(String giftBagId, String page, String pageSize,int type) {
if (type==1) {
api.getMyRecord(giftBagId, page, pageSize, new BaseObserver<List<GiftBean>>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
}
@Override
public void onNext(List<GiftBean> giftBean) {
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().getMyRecordSuccess(giftBean);
MvpRef.get().finishRefreshLoadMore();
}
});
}else {
api.getAllRecord(giftBagId,page,pageSize,new BaseObserver<List<GiftBean>>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
}
@Override
public void onNext(List<GiftBean> giftBean) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().getAllRecordSuccess(giftBean);
MvpRef.get().finishRefreshLoadMore();
}
});
}
}
@Override
public void giftSend(String send_id) {
api.giftSend(send_id, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
}
@Override
public void onNext(String s) {
}
});
}
@Override
public void wallet() {
api.wallet(new BaseObserver<WalletBean>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
}
@Override
public void onNext(WalletBean walletBean) {
MvpRef.get().wallet(walletBean);
}
});
}
}

View File

@@ -0,0 +1,53 @@
package com.xscm.moduleutil.dialog.giftLottery;
import android.content.Context;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.xscm.moduleutil.R;
import com.xscm.moduleutil.adapter.MyBaseAdapter;
import com.xscm.moduleutil.bean.GiftBean;
import com.xscm.moduleutil.utils.ImageUtils;
/**
*@author qx
*@data 2025/8/28
*@description: 盲盒转盘的奖池适配器
*/
public class PrizePoolAdapter extends BaseQuickAdapter<GiftBean, BaseViewHolder> {
private Context context;
public PrizePoolAdapter() {
super(R.layout.item_prize_pool);
}
@Override
protected void convert(BaseViewHolder helper, GiftBean item) {
helper.setText(R.id.tv_gift_name, item.getGift_name());
helper.setText(R.id.tv_gift_pic, item.getGift_price());
ImageUtils.loadHeadCC(item.getBase_image(),helper.getView(R.id.iv_gift_image));
}
public static class ViewHolder {
private ImageView imGiftImage;
private TextView tv_gift_name;
private TextView tv_gift_price;
public ViewHolder(View convertView) {
imGiftImage = convertView.findViewById(R.id.iv_gift_image);
tv_gift_name = convertView.findViewById(R.id.tv_gift_name);
tv_gift_price = convertView.findViewById(R.id.tv_gift_pic);
}
}
}

View File

@@ -0,0 +1,105 @@
package com.xscm.moduleutil.dialog.giftLottery;
import android.content.Context;
import android.os.Bundle;
import androidx.annotation.NonNull;
import com.xscm.moduleutil.R;
import com.xscm.moduleutil.adapter.GiftAdapter;
import com.xscm.moduleutil.adapter.OneImageYuanJiaoAdapter;
import com.xscm.moduleutil.base.BaseMvpDialogFragment;
import com.xscm.moduleutil.base.BaseRoomContacts;
import com.xscm.moduleutil.bean.GiftBean;
import com.xscm.moduleutil.databinding.DialogPrizePoolBinding;
import com.xscm.moduleutil.widget.MyGridView;
import com.xscm.moduleutil.widget.dialog.BaseDialog;
import com.xscm.moduleutil.widget.pagerecyclerview.PagerGridLayoutManager;
import com.xscm.moduleutil.widget.pagerecyclerview.PagerGridSnapHelper;
import java.io.Serializable;
import java.util.List;
/**
*@author qx
*@data 2025/8/28
*@description: 盲盒转盘奖池弹窗
*/
public class PrizePoolDialog extends BaseDialog<DialogPrizePoolBinding> {
private Context mContext;
private List<GiftBean> gift_list;
private int type ;
public PrizePoolDialog(@NonNull Context context) {
super(context);
this.mContext = context;
}
@Override
public int getLayoutId() {
return R.layout.dialog_prize_pool;
}
@Override
public void initView() {
}
@Override
public void initData() {
}
private void showEmptyState() {
// 显示空状态或加载中提示
// mBinding.tvEmpty.setVisibility(View.VISIBLE);
// mBinding.tvEmpty.setText("暂无奖池数据");
}
// 提供更新数据的方法
public void updateData(List<GiftBean> newData ,int type) {
if (type==10){
mBinding.clPrize.setBackgroundResource(R.mipmap.tkzj);
mBinding.imJc.setImageResource(R.mipmap.jiangc);
}else if (type==11){
mBinding.clPrize.setBackgroundResource(R.mipmap.syzc);
mBinding.imJc.setImageResource(R.mipmap.syzc_jc);
}else if (type==12){
mBinding.clPrize.setBackgroundResource(R.mipmap.skzj);
mBinding.imJc.setImageResource(R.mipmap.skzl_jc);
}
// 根据屏幕密度调整行数和列数
int rows, columns;
float density = mContext.getResources().getDisplayMetrics().density;
if (density <= 2.0) { // 低密度屏幕如mdpi, hdpi
rows = 3;
columns = 2;
} else if (density <= 3.0) { // 中密度屏幕如xhdpi
rows = 3;
columns = 3;
} else { // 高密度屏幕如xxhdpi, xxxhdpi
rows = 4;
columns = 3;
}
if (newData != null && !newData.isEmpty()) {
this.gift_list = newData;
if (mBinding != null && mContext != null) {
PrizePoolAdapter prizePoolAdapter = new PrizePoolAdapter();
PagerGridLayoutManager layoutManager = new PagerGridLayoutManager(rows, columns, PagerGridLayoutManager.VERTICAL);
mBinding.gvGift.setLayoutManager(layoutManager);
mBinding.gvGift.setOnFlingListener(null);
// 设置滚动辅助工具
PagerGridSnapHelper pageSnapHelper = new PagerGridSnapHelper();
pageSnapHelper.attachToRecyclerView(mBinding.gvGift);
mBinding.gvGift.setAdapter(prizePoolAdapter);
prizePoolAdapter.setNewData(gift_list);
}
}
}
}

View File

@@ -0,0 +1,37 @@
package com.xscm.moduleutil.event;
/**
*@author qx
*@data 2025/8/28
*@description: 这是创建一枚举,根据类型的不同,创建不同的弹窗
*/
public enum LotteryEvent {
MIRROR_SKY("10"), // 天空之境
CITY_TIME("11"), //岁月之城
PINNACLE_TIME("12"); // 时光之巅
private final String type;
LotteryEvent(String type) {
this.type = type;
}
public String getType() {
return type;
}
// 根据giftBagId字符串判断类型
public static LotteryEvent fromLotteryEvent(String giftBagId) {
if (giftBagId.equals("10")) {
return MIRROR_SKY;
}
if (giftBagId.equals("11")) {
return CITY_TIME;
}
if (giftBagId.equals("12")) {
return PINNACLE_TIME;
}
return MIRROR_SKY;
}
}

View File

@@ -13,6 +13,7 @@ import com.xscm.moduleutil.bean.CommentBean;
import com.xscm.moduleutil.bean.ExpandColumnBean;
import com.xscm.moduleutil.bean.FirstChargeBean;
import com.xscm.moduleutil.bean.FirstChargeGiftBean;
import com.xscm.moduleutil.bean.GiftBean;
import com.xscm.moduleutil.bean.GiftBoxRecordBean;
import com.xscm.moduleutil.bean.GiftLabelBean;
import com.xscm.moduleutil.bean.GiftName;
@@ -737,4 +738,14 @@ public interface ApiServer {
@FormUrlEncoded
@POST(Constants.POST_DRAW_GIFT_LIST)
Call<BaseModel<BlindReslutBean>> drawGiftList(@Field("gift_bag_id") String gift_bag_id, @Field("gift_user_ids") String gift_user_ids,@Field("room_id")String room_id,@Field("num")String num);
@GET(Constants.GET_MY_RECORD)
Call<BaseModel<List<GiftBean>>> getMyRecord(@Query("gift_bag_id")String gift_bag_id,@Query("page")String page,@Query("page_size")String page_size);
@GET(Constants.GET_ALL_RECORD)
Call<BaseModel<List<GiftBean>>> getAllRecord(@Query("gift_bag_id")String gift_bag_id,@Query("page")String page,@Query("page_size")String page_size);
@FormUrlEncoded
@POST(Constants.GIFT_SEND)
Call<BaseModel<String>> giftSend(@Field("send_id")String send_id);
}

View File

@@ -27,6 +27,7 @@ import com.xscm.moduleutil.bean.CommentBean;
import com.xscm.moduleutil.bean.ExpandColumnBean;
import com.xscm.moduleutil.bean.FirstChargeBean;
import com.xscm.moduleutil.bean.FirstChargeGiftBean;
import com.xscm.moduleutil.bean.GiftBean;
import com.xscm.moduleutil.bean.GiftBoxBean;
import com.xscm.moduleutil.bean.GiftBoxRecordBean;
import com.xscm.moduleutil.bean.GiftLabelBean;
@@ -2242,4 +2243,55 @@ public class RetrofitClient {
});
}
public void getMyRecord(String giftBagId,String page,String pageSize,BaseObserver<List<GiftBean>> observer){
sApiServer.getMyRecord(giftBagId,page,pageSize).enqueue(new Callback<BaseModel<List<GiftBean>>>() {
@Override
public void onResponse(Call<BaseModel<List<GiftBean>>> call, Response<BaseModel<List<GiftBean>>> response) {
if (response.code()==200){
BaseModel<List<GiftBean>> baseModel = response.body();
if (baseModel.getCode()==1){
observer.onNext(baseModel.getData());
}
}
}
@Override
public void onFailure(Call<BaseModel<List<GiftBean>>> call, Throwable t) {
t.printStackTrace();
}
});
}
public void getAllRecord(String giftBagId,String page,String pageSize,BaseObserver<List<GiftBean>> observer){
sApiServer.getAllRecord(giftBagId,page,pageSize).enqueue(new Callback<BaseModel<List<GiftBean>>>() {
@Override
public void onResponse(Call<BaseModel<List<GiftBean>>> call, Response<BaseModel<List<GiftBean>>> response) {
if (response.code()==200){
BaseModel<List<GiftBean>> baseModel = response.body();
if (baseModel.getCode()==1){
observer.onNext(baseModel.getData());
}
}
}
@Override
public void onFailure(Call<BaseModel<List<GiftBean>>> call, Throwable t) {
t.printStackTrace();
}
});
}
public void giftSend(String send_id,BaseObserver<String> observer){
sApiServer.giftSend(send_id).enqueue(new Callback<BaseModel<String>>() {
@Override
public void onResponse(Call<BaseModel<String>> call, Response<BaseModel<String>> response) {
onNextRetu(response, observer);
}
@Override
public void onFailure(Call<BaseModel<String>> call, Throwable t) {
t.printStackTrace();
}
});
}
}

View File

@@ -48,7 +48,8 @@ public class MyMqttService extends Service implements MyEmqttConnectListener, My
private static int qos = 2;
// private static String HOST ="tcp://81.70.45.221";//正式
private static String HOST = "tcp://47.120.21.132";//测试
private static String HOST = "tcp://1.13.181.248";//测试
// private static String HOST = "tcp://47.120.21.132";//测试
private static MqttAndroidClient mqttAndroidClient;
private MqttConnectOptions mMqttConnectOptions;
private static boolean b = true;

View File

@@ -366,9 +366,9 @@ public class AvatarFrameView extends FrameLayout implements IAnimListener {
mFile = file;
} else {
// 删除可能存在的损坏文件
if (file.exists()) {
file.delete();
}
// if (file.exists()) {
// file.delete();
// }
DownloadTask task = new DownloadTask.Builder(url, PathUtils.getInternalAppCachePath()
, Md5Utils.getStringMD5(url) + ".mp4")
.setMinIntervalMillisCallbackProcess(300)

View File

@@ -376,6 +376,9 @@ public class Constants {
public static final String CREATE_RELATION = "/api/Friend/create_relation";//卡关系 (创建关系) 交友房
public static final String GET_BOX_GIFT_LIST = "/api/BlindBoxTurntable/get_gift_list";//获取活动礼物列表
public static final String POST_DRAW_GIFT_LIST = "/api/BlindBoxTurntable/draw_gift";//盲盒转盘抽奖
public static final String GET_MY_RECORD = "/api/BlindBoxTurntable/get_my_record";//获取我的抽奖记录
public static final String GET_ALL_RECORD = "/api/BlindBoxTurntable/get_all_record";//获取全服抽奖记录
public static final String GIFT_SEND = "/api/BlindBoxTurntable/gift_send";//礼物发放

View File

@@ -95,12 +95,12 @@ public class GiftCardView extends FrameLayout {
normalBackground = typedArray.getDrawable(R.styleable.GiftCardView_normalBackground);
// 如果没有设置选中背景,则使用默认的选中效果
if (selectedBackground == null) {
selectedBackground = ContextCompat.getDrawable(getContext(), R.mipmap.tkzj_x);
}
if (normalBackground == null) {
normalBackground = ContextCompat.getDrawable(getContext(), R.mipmap.tkzj_w);
}
// if (selectedBackground == null) {
// selectedBackground = ContextCompat.getDrawable(getContext(), R.mipmap.tkzj_x);
// }
// if (normalBackground == null) {
// normalBackground = ContextCompat.getDrawable(getContext(), R.mipmap.tkzj_w);
// }
// 设置默认背景
if (normalBackground != null) {
@@ -208,19 +208,19 @@ public class GiftCardView extends FrameLayout {
if (selected) {
setBackground(selectedBackground);
// 可以添加额外的选中效果
setElevation(8f); // 提高阴影
// setElevation(8f); // 提高阴影
// 添加发光效果
addGlowEffect();
// addGlowEffect();
} else {
setBackground(normalBackground);
setElevation(4f); // 恢复默认阴影
removeGlowEffect();
// setElevation(4f); // 恢复默认阴影
// removeGlowEffect();
}
}
public void setmResultTextView(int num){
if (mResultTextView!=null) {
mResultTextView.setText("X" + num);
mResultTextView.setText("x" + num);
}
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_53" />
<solid android:color="#802d449f" />
</shape>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_53" />
<solid android:color="#808c3ca2" />
</shape>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_53" />
<solid android:color="#80a27f40" />
</shape>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#659AF0" />
</shape>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#CF9870" />
</shape>

View File

@@ -0,0 +1,475 @@
<?xml version="1.0" encoding="utf-8"?>
<layout 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">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/syzc_bj">
<!-- 顶部抽奖按钮 -->
<LinearLayout
android:id="@+id/lottery_buttons_layout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="@dimen/dp_16"
android:gravity="center"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<LinearLayout
android:id="@+id/ll_one"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@mipmap/chou_w"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/btn_lottery_one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_3"
android:gravity="center"
android:text="抽一次"
android:textSize="@dimen/sp_12" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_2"
android:drawableLeft="@mipmap/jinb"
android:gravity="center"
android:text="10币一次"
android:textSize="@dimen/sp_10" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_ten"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_8"
android:layout_marginEnd="@dimen/dp_8"
android:layout_weight="1"
android:background="@mipmap/chou_w"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/btn_lottery_ten"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_3"
android:gravity="center"
android:text="抽十次"
android:textSize="@dimen/sp_12" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_2"
android:drawableLeft="@mipmap/jinb"
android:gravity="center"
android:text="100币一次"
android:textSize="@dimen/sp_10" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_hundred"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@mipmap/chou_w"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/btn_lottery_hundred"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_3"
android:gravity="center"
android:text="抽百次"
android:textSize="@dimen/sp_12" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_2"
android:drawableLeft="@mipmap/jinb"
android:gravity="center"
android:text="1000币一次"
android:textSize="@dimen/sp_10" />
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/tv_jc"
android:layout_width="@dimen/dp_48"
android:layout_height="@dimen/dp_24"
android:layout_marginTop="@dimen/dp_60"
android:background="@mipmap/syzc_rigth_bj"
android:gravity="center"
android:text="奖池"
android:textColor="@color/white"
android:textSize="@dimen/sp_12"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_gz"
android:layout_width="@dimen/dp_48"
android:layout_height="@dimen/dp_24"
android:background="@mipmap/syzc_left_bj"
android:gravity="center"
android:text="规则"
android:textColor="@color/white"
android:textSize="@dimen/sp_12"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/tv_jc" />
<TextView
android:id="@+id/tv_jl"
android:layout_width="@dimen/dp_48"
android:layout_height="@dimen/dp_24"
android:layout_marginTop="@dimen/dp_10"
android:background="@mipmap/syzc_left_bj"
android:gravity="center"
android:text="记录"
android:textColor="@color/white"
android:textSize="@dimen/sp_12"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_gz" />
<LinearLayout
android:id="@+id/ll_yx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_60"
android:layout_marginBottom="@dimen/dp_17"
android:gravity="center"
android:orientation="horizontal"
app:layout_constraintBottom_toTopOf="@+id/lottery_buttons_layout"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/gift7">
<TextView
android:id="@+id/tv_lock_yx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="音效"
android:textColor="@color/white"
android:textSize="@dimen/sp_14"
/>
<Switch
android:id="@+id/sw_lock_yx"
android:layout_width="@dimen/dp_37"
android:layout_height="@dimen/dp_20"
android:layout_marginStart="@dimen/dp_5"
android:background="@drawable/room_tuner_selector_switch"
android:thumb="@android:color/transparent"
tools:ignore="UseSwitchCompatOrMaterialXml" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_tx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_20"
android:layout_marginBottom="@dimen/dp_17"
android:gravity="center"
android:orientation="horizontal"
app:layout_constraintStart_toEndOf="@+id/ll_yx"
app:layout_constraintTop_toTopOf="@+id/ll_yx">
<TextView
android:id="@+id/tv_tx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="特效"
android:textColor="@color/white"
android:textSize="@dimen/sp_14"
/>
<Switch
android:id="@+id/sw_tex"
android:layout_width="@dimen/dp_37"
android:layout_height="@dimen/dp_20"
android:layout_marginStart="@dimen/dp_5"
android:background="@drawable/room_tuner_selector_switch"
android:thumb="@android:color/transparent"
tools:ignore="UseSwitchCompatOrMaterialXml" />
</LinearLayout>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift1"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginStart="@dimen/dp_34"
android:layout_marginTop="@dimen/dp_5"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_jl"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/syzc_x"
app:normalBackground="@mipmap/syzc_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift2"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginStart="@dimen/dp_34"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toEndOf="@+id/gift1"
app:layout_constraintTop_toTopOf="@+id/gift1"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/syzc_x"
app:normalBackground="@mipmap/syzc_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift3"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginStart="@dimen/dp_34"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toEndOf="@+id/gift2"
app:layout_constraintTop_toTopOf="@+id/gift2"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/syzc_x"
app:normalBackground="@mipmap/syzc_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift4"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginTop="@dimen/dp_10"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toStartOf="@+id/gift3"
app:layout_constraintEnd_toEndOf="@+id/gift3"
app:layout_constraintTop_toBottomOf="@+id/gift3"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/syzc_x"
app:normalBackground="@mipmap/syzc_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift5"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginTop="@dimen/dp_10"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toStartOf="@+id/gift4"
app:layout_constraintTop_toBottomOf="@+id/gift4"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/syzc_x"
app:normalBackground="@mipmap/syzc_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift6"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginTop="@dimen/dp_10"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintEnd_toEndOf="@id/gift5"
app:layout_constraintStart_toStartOf="@id/gift5"
app:layout_constraintTop_toBottomOf="@+id/gift5"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/syzc_x"
app:normalBackground="@mipmap/syzc_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift7"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toStartOf="@id/gift2"
app:layout_constraintEnd_toEndOf="@+id/gift2"
app:layout_constraintTop_toTopOf="@id/gift6"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/syzc_x"
app:normalBackground="@mipmap/syzc_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift8"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toStartOf="@+id/gift1"
app:layout_constraintTop_toBottomOf="@+id/gift9"
app:layout_constraintTop_toTopOf="@id/gift7"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/syzc_x"
app:normalBackground="@mipmap/syzc_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift9"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toStartOf="@+id/gift1"
app:layout_constraintTop_toTopOf="@id/gift5"
app:layout_constraintBottom_toBottomOf="@id/gift5"
app:layout_constraintEnd_toEndOf="@+id/gift8"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/syzc_x"
app:normalBackground="@mipmap/syzc_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift10"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toStartOf="@+id/gift1"
app:layout_constraintTop_toTopOf="@id/gift4"
app:layout_constraintEnd_toEndOf="@+id/gift1"
app:layout_constraintBottom_toBottomOf="@+id/gift4"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/syzc_x"
app:normalBackground="@mipmap/syzc_w"/>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/ll_progress"
android:layout_width="@dimen/dp_148"
android:layout_height="@dimen/dp_148"
android:background="@mipmap/syzc_z_b"
android:orientation="vertical"
app:layout_constraintEnd_toStartOf="@+id/gift4"
app:layout_constraintStart_toEndOf="@+id/gift10"
app:layout_constraintTop_toBottomOf="@+id/gift2">
<FrameLayout
android:layout_width="@dimen/dp_70"
android:layout_height="@dimen/dp_70"
android:layout_marginTop="@dimen/dp_20"
android:background="@drawable/syzc_background"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<!-- 进度条 -->
<com.xscm.moduleutil.widget.CircularProgressView
android:id="@+id/circular_progress_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:backColor="@color/color_transparent"
app:backWidth="@dimen/dp_13"
app:progColor="#EEC774"
app:progWidth="@dimen/dp_13"
app:progress="50" />
<TextView
android:id="@+id/tv_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textColor="@color/white"
android:textSize="@dimen/sp_16"
android:textStyle="bold"
tools:text="60%" />
</FrameLayout>
<!-- 正式开始按钮 -->
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/tv_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="-30dp"
android:background="@mipmap/dengt"
app:layout_constraintEnd_toEndOf="@+id/ll_progress"
app:layout_constraintStart_toStartOf="@+id/ll_progress"
app:layout_constraintTop_toBottomOf="@+id/ll_progress" />
<!-- 兑换提示 -->
<LinearLayout
android:id="@+id/exchange_layout"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_28"
android:background="@drawable/bg_r45_a27f40"
android:gravity="center"
android:orientation="horizontal"
android:paddingStart="@dimen/dp_9"
android:paddingEnd="@dimen/dp_9"
app:layout_constraintBottom_toTopOf="@+id/gift8"
app:layout_constraintEnd_toEndOf="@+id/ll_progress"
app:layout_constraintStart_toStartOf="@+id/ll_progress"
app:layout_constraintTop_toBottomOf="@+id/tv_start">
<TextView
android:id="@+id/tv_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@mipmap/jinb"
android:drawablePadding="@dimen/dp_5"
tools:text="66666"
android:textColor="#F8E837"
android:textSize="@dimen/sp_10" />
<TextView
android:id="@+id/tv_dh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:text="去兑换"
android:textColor="#F8E837"
android:textSize="@dimen/sp_10" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -5,374 +5,27 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/tkzj_bj">
<!-- 顶部抽奖按钮 -->
<LinearLayout
android:id="@+id/lottery_buttons_layout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="@dimen/dp_16"
android:gravity="center"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<LinearLayout
android:id="@+id/ll_one"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@mipmap/chou_w"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/btn_lottery_one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_3"
android:gravity="center"
android:text="抽一次"
android:textSize="@dimen/sp_12" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_2"
android:drawableLeft="@mipmap/jinb"
android:gravity="center"
android:text="10币一次"
android:textSize="@dimen/sp_10" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_ten"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_8"
android:layout_marginEnd="@dimen/dp_8"
android:layout_weight="1"
android:background="@mipmap/chou_w"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/btn_lottery_ten"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_3"
android:gravity="center"
android:text="抽十次"
android:textSize="@dimen/sp_12" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_2"
android:drawableLeft="@mipmap/jinb"
android:gravity="center"
android:text="100币一次"
android:textSize="@dimen/sp_10" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_hundred"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@mipmap/chou_w"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/btn_lottery_hundred"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_3"
android:gravity="center"
android:text="抽百次"
android:textSize="@dimen/sp_12" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_2"
android:drawableLeft="@mipmap/jinb"
android:gravity="center"
android:text="1000币一次"
android:textSize="@dimen/sp_10" />
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/tv_jc"
android:layout_width="@dimen/dp_48"
android:layout_height="@dimen/dp_24"
android:layout_marginTop="@dimen/dp_60"
android:background="@mipmap/tkzi_rigth_bj"
android:gravity="center"
android:text="奖池"
android:textColor="@color/white"
android:textSize="@dimen/sp_12"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_gz"
android:layout_width="@dimen/dp_48"
android:layout_height="@dimen/dp_24"
android:background="@mipmap/tkzj_left_bj"
android:gravity="center"
android:text="规则"
android:textColor="@color/white"
android:textSize="@dimen/sp_12"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/tv_jc" />
<TextView
android:id="@+id/tv_jl"
android:layout_width="@dimen/dp_48"
android:layout_height="@dimen/dp_24"
android:layout_marginTop="@dimen/dp_10"
android:background="@mipmap/tkzj_left_bj"
android:gravity="center"
android:text="记录"
android:textColor="@color/white"
android:textSize="@dimen/sp_12"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_gz" />
<LinearLayout
android:id="@+id/ll_yx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_60"
android:layout_marginBottom="@dimen/dp_17"
app:layout_constraintTop_toBottomOf="@+id/gift10"
android:gravity="center"
android:orientation="horizontal"
app:layout_constraintBottom_toTopOf="@+id/lottery_buttons_layout"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
android:layout_height="wrap_content">
<TextView
android:id="@+id/tv_lock_yx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="音效"
android:textColor="@color/white"
android:textSize="@dimen/sp_14"
/>
<Switch
android:id="@+id/sw_lock_yx"
android:layout_width="@dimen/dp_37"
android:layout_height="@dimen/dp_20"
android:layout_marginStart="@dimen/dp_5"
android:background="@drawable/room_tuner_selector_switch"
android:thumb="@android:color/transparent"
tools:ignore="UseSwitchCompatOrMaterialXml" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_tx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_20"
android:layout_marginBottom="@dimen/dp_17"
android:gravity="center"
android:orientation="horizontal"
app:layout_constraintTop_toTopOf="@+id/ll_yx"
app:layout_constraintStart_toEndOf="@+id/ll_yx">
<TextView
android:id="@+id/tv_tx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="特效"
android:textColor="@color/white"
android:textSize="@dimen/sp_14"
/>
<Switch
android:id="@+id/sw_tex"
android:layout_width="@dimen/dp_37"
android:layout_height="@dimen/dp_20"
android:layout_marginStart="@dimen/dp_5"
android:background="@drawable/room_tuner_selector_switch"
android:thumb="@android:color/transparent"
tools:ignore="UseSwitchCompatOrMaterialXml" />
</LinearLayout>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift1"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_5"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_jl"
app:layout_constraintWidth_percent="0.2"
<include
android:id="@+id/mirroe_sky"
layout="@layout/dialog_mirroe_sky"
android:visibility="gone"
/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift2"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginStart="@dimen/dp_11"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toEndOf="@+id/gift1"
app:layout_constraintTop_toTopOf="@+id/gift1"
app:layout_constraintWidth_percent="0.2"
<include
android:id="@+id/city_time"
layout="@layout/dialog_city_time"
android:visibility="gone"
/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift3"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginStart="@dimen/dp_11"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toEndOf="@+id/gift2"
app:layout_constraintTop_toTopOf="@+id/gift2"
app:layout_constraintWidth_percent="0.2"
/>
<include
android:id="@+id/pinnacle_time"
layout="@layout/dialog_pinnacle_time"
android:visibility="gone"
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift4"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginEnd="@dimen/dp_20"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/gift3"
app:layout_constraintWidth_percent="0.2"
/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift5"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginTop="@dimen/dp_5"
android:layout_marginEnd="@dimen/dp_20"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/gift3"
app:layout_constraintWidth_percent="0.2"
/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift6"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginTop="@dimen/dp_5"
android:layout_marginEnd="@dimen/dp_20"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/gift5"
app:layout_constraintWidth_percent="0.2"
/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift7"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginTop="@dimen/dp_5"
android:layout_marginEnd="@dimen/dp_20"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/gift6"
app:layout_constraintWidth_percent="0.2"
/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift8"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginStart="@dimen/dp_11"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toEndOf="@+id/gift9"
app:layout_constraintTop_toTopOf="@+id/gift7"
app:layout_constraintWidth_percent="0.2"
/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift9"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginStart="@dimen/dp_11"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toEndOf="@+id/gift10"
app:layout_constraintTop_toTopOf="@+id/gift8"
app:layout_constraintWidth_percent="0.2"
/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift10"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginStart="@dimen/dp_16"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/gift9"
app:layout_constraintWidth_percent="0.2"
/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift11"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginStart="@dimen/dp_16"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/gift6"
app:layout_constraintWidth_percent="0.2"
/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift12"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginStart="@dimen/dp_16"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/gift5"
app:layout_constraintWidth_percent="0.2"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -0,0 +1,105 @@
<?xml version="1.0" encoding="utf-8"?>
<layout 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">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_root"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/tkzj"
android:orientation="vertical">
<ImageView
android:id="@+id/im_jc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_36"
android:src="@mipmap/jilu"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/custom_tab_layout"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_16"
android:layout_marginBottom="@dimen/dp_30"
android:background="#80000000"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/im_jc">
<TextView
android:id="@+id/textView1"
android:layout_width="0dp"
android:layout_height="@dimen/dp_24"
android:background="@mipmap/tab_dy"
android:layout_marginTop="@dimen/dp_16"
android:gravity="center"
android:text="我的记录"
android:textColor="@color/white"
android:layout_marginStart="@dimen/sp_12"
android:textSize="@dimen/sp_16"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_default="percent"
app:layout_constraintWidth_percent="0.2" />
<TextView
android:id="@+id/textView2"
android:layout_width="0dp"
android:layout_height="@dimen/dp_24"
android:layout_marginStart="@dimen/dp_16"
android:gravity="center"
android:text="全服记录"
android:textColor="#5B5B5B"
android:textSize="@dimen/sp_14"
app:layout_constraintStart_toEndOf="@+id/textView1"
app:layout_constraintTop_toTopOf="@+id/textView1"
app:layout_constraintWidth_default="percent"
app:layout_constraintWidth_percent="0.2" />
<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id="@+id/smart_refresh_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_16"
android:layout_marginBottom="@dimen/dp_30"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView1"
app:srlEnableLoadMore="true"
app:srlEnableRefresh="true">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_10"
android:nestedScrollingEnabled="false"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:layout_constraintTop_toBottomOf="@+id/im_jc"
app:spanCount="3"
tools:listitem="@layout/item_prize_pool" />
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_60"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/smart_refresh_layout"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -0,0 +1,506 @@
<?xml version="1.0" encoding="utf-8"?>
<layout 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">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/tkzj_bj">
<!-- 顶部抽奖按钮 -->
<LinearLayout
android:id="@+id/lottery_buttons_layout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="@dimen/dp_16"
android:gravity="center"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<LinearLayout
android:id="@+id/ll_one"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@mipmap/chou_w"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/btn_lottery_one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_3"
android:gravity="center"
android:text="抽一次"
android:textSize="@dimen/sp_12" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_2"
android:drawableLeft="@mipmap/jinb"
android:gravity="center"
android:text="10币一次"
android:textSize="@dimen/sp_10" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_ten"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_8"
android:layout_marginEnd="@dimen/dp_8"
android:layout_weight="1"
android:background="@mipmap/chou_w"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/btn_lottery_ten"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_3"
android:gravity="center"
android:text="抽十次"
android:textSize="@dimen/sp_12" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_2"
android:drawableLeft="@mipmap/jinb"
android:gravity="center"
android:text="100币一次"
android:textSize="@dimen/sp_10" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_hundred"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@mipmap/chou_w"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/btn_lottery_hundred"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_3"
android:gravity="center"
android:text="抽百次"
android:textSize="@dimen/sp_12" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_2"
android:drawableLeft="@mipmap/jinb"
android:gravity="center"
android:text="1000币一次"
android:textSize="@dimen/sp_10" />
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/tv_jc"
android:layout_width="@dimen/dp_48"
android:layout_height="@dimen/dp_24"
android:layout_marginTop="@dimen/dp_60"
android:background="@mipmap/tkzi_rigth_bj"
android:gravity="center"
android:text="奖池"
android:textColor="@color/white"
android:textSize="@dimen/sp_12"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_gz"
android:layout_width="@dimen/dp_48"
android:layout_height="@dimen/dp_24"
android:background="@mipmap/tkzj_left_bj"
android:gravity="center"
android:text="规则"
android:textColor="@color/white"
android:textSize="@dimen/sp_12"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/tv_jc" />
<TextView
android:id="@+id/tv_jl"
android:layout_width="@dimen/dp_48"
android:layout_height="@dimen/dp_24"
android:layout_marginTop="@dimen/dp_10"
android:background="@mipmap/tkzj_left_bj"
android:gravity="center"
android:text="记录"
android:textColor="@color/white"
android:textSize="@dimen/sp_12"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_gz" />
<LinearLayout
android:id="@+id/ll_yx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_60"
android:layout_marginBottom="@dimen/dp_17"
android:gravity="center"
android:orientation="horizontal"
app:layout_constraintBottom_toTopOf="@+id/lottery_buttons_layout"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/gift10">
<TextView
android:id="@+id/tv_lock_yx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="音效"
android:textColor="@color/white"
android:textSize="@dimen/sp_14"
/>
<Switch
android:id="@+id/sw_lock_yx"
tools:ignore="UseSwitchCompatOrMaterialXml"
android:layout_width="@dimen/dp_37"
android:layout_height="@dimen/dp_20"
android:layout_marginStart="@dimen/dp_5"
android:background="@drawable/room_tuner_selector_switch"
android:thumb="@android:color/transparent" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_tx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_20"
android:layout_marginBottom="@dimen/dp_17"
android:gravity="center"
android:orientation="horizontal"
app:layout_constraintStart_toEndOf="@+id/ll_yx"
app:layout_constraintTop_toTopOf="@+id/ll_yx">
<TextView
android:id="@+id/tv_tx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="特效"
android:textColor="@color/white"
android:textSize="@dimen/sp_14"
/>
<Switch
android:id="@+id/sw_tex"
tools:ignore="UseSwitchCompatOrMaterialXml"
android:layout_width="@dimen/dp_37"
android:layout_height="@dimen/dp_20"
android:layout_marginStart="@dimen/dp_5"
android:background="@drawable/room_tuner_selector_switch"
android:thumb="@android:color/transparent" />
</LinearLayout>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift1"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_5"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_jl"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/tkzj_x"
app:normalBackground="@mipmap/tkzj_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift2"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginStart="@dimen/dp_11"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toEndOf="@+id/gift1"
app:layout_constraintTop_toTopOf="@+id/gift1"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/tkzj_x"
app:normalBackground="@mipmap/tkzj_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift3"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginStart="@dimen/dp_11"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toEndOf="@+id/gift2"
app:layout_constraintTop_toTopOf="@+id/gift2"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/tkzj_x"
app:normalBackground="@mipmap/tkzj_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift4"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginEnd="@dimen/dp_20"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/gift3"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/tkzj_x"
app:normalBackground="@mipmap/tkzj_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift5"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginTop="@dimen/dp_5"
android:layout_marginEnd="@dimen/dp_20"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/gift3"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/tkzj_x"
app:normalBackground="@mipmap/tkzj_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift6"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginTop="@dimen/dp_5"
android:layout_marginEnd="@dimen/dp_20"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/gift5"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/tkzj_x"
app:normalBackground="@mipmap/tkzj_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift7"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginTop="@dimen/dp_5"
android:layout_marginEnd="@dimen/dp_20"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/gift6"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/tkzj_x"
app:normalBackground="@mipmap/tkzj_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift8"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginStart="@dimen/dp_11"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toEndOf="@+id/gift9"
app:layout_constraintTop_toTopOf="@+id/gift7"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/tkzj_x"
app:normalBackground="@mipmap/tkzj_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift9"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginStart="@dimen/dp_11"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toEndOf="@+id/gift10"
app:layout_constraintTop_toTopOf="@+id/gift8"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/tkzj_x"
app:normalBackground="@mipmap/tkzj_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift10"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginStart="@dimen/dp_16"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/gift9"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/tkzj_x"
app:normalBackground="@mipmap/tkzj_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift11"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginStart="@dimen/dp_16"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/gift6"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/tkzj_x"
app:normalBackground="@mipmap/tkzj_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift12"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginStart="@dimen/dp_16"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/gift5"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/tkzj_x"
app:normalBackground="@mipmap/tkzj_w"/>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/ll_progress"
android:layout_width="@dimen/dp_148"
android:layout_height="@dimen/dp_148"
android:background="@mipmap/tkzj_z_b"
android:orientation="vertical"
app:layout_constraintEnd_toStartOf="@+id/gift4"
app:layout_constraintStart_toEndOf="@+id/gift12"
app:layout_constraintTop_toBottomOf="@+id/gift2">
<FrameLayout
android:layout_width="@dimen/dp_70"
android:layout_height="@dimen/dp_70"
android:layout_marginTop="@dimen/dp_20"
android:background="@drawable/circle_background"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<!-- 进度条 -->
<com.xscm.moduleutil.widget.CircularProgressView
android:id="@+id/circular_progress_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:backColor="@color/color_transparent"
app:backWidth="@dimen/dp_13"
app:progColor="#32F6CD"
app:progWidth="@dimen/dp_13"
app:progress="50" />
<TextView
android:id="@+id/tv_progress"
tools:text="60%"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textColor="@color/white"
android:textSize="@dimen/sp_16"
android:textStyle="bold" />
</FrameLayout>
<!-- 正式开始按钮 -->
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/tv_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="-30dp"
android:background="@mipmap/dengt"
app:layout_constraintEnd_toEndOf="@+id/ll_progress"
app:layout_constraintStart_toStartOf="@+id/ll_progress"
app:layout_constraintTop_toBottomOf="@+id/ll_progress" />
<!-- 兑换提示 -->
<LinearLayout
android:id="@+id/exchange_layout"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_28"
android:background="@drawable/bg_r45_2d449f"
android:gravity="center"
android:orientation="horizontal"
android:paddingStart="@dimen/dp_9"
android:paddingEnd="@dimen/dp_9"
app:layout_constraintBottom_toTopOf="@+id/gift8"
app:layout_constraintEnd_toEndOf="@+id/ll_progress"
app:layout_constraintStart_toStartOf="@+id/ll_progress"
app:layout_constraintTop_toBottomOf="@+id/tv_start">
<TextView
android:id="@+id/tv_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@mipmap/jinb"
android:drawablePadding="@dimen/dp_5"
tools:text="66666"
android:textColor="#F8E837"
android:textSize="@dimen/sp_10" />
<TextView
android:id="@+id/tv_dh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:text="去兑换"
android:textColor="#F8E837"
android:textSize="@dimen/sp_10" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -0,0 +1,475 @@
<?xml version="1.0" encoding="utf-8"?>
<layout 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">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/skzd_bj">
<!-- 顶部抽奖按钮 -->
<LinearLayout
android:id="@+id/lottery_buttons_layout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="@dimen/dp_16"
android:gravity="center"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<LinearLayout
android:id="@+id/ll_one"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@mipmap/chou_w"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/btn_lottery_one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_3"
android:gravity="center"
android:text="抽一次"
android:textSize="@dimen/sp_12" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_2"
android:drawableLeft="@mipmap/jinb"
android:gravity="center"
android:text="10币一次"
android:textSize="@dimen/sp_10" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_ten"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_8"
android:layout_marginEnd="@dimen/dp_8"
android:layout_weight="1"
android:background="@mipmap/chou_w"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/btn_lottery_ten"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_3"
android:gravity="center"
android:text="抽十次"
android:textSize="@dimen/sp_12" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_2"
android:drawableLeft="@mipmap/jinb"
android:gravity="center"
android:text="100币一次"
android:textSize="@dimen/sp_10" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_hundred"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@mipmap/chou_w"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/btn_lottery_hundred"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_3"
android:gravity="center"
android:text="抽百次"
android:textSize="@dimen/sp_12" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_2"
android:drawableLeft="@mipmap/jinb"
android:gravity="center"
android:text="1000币一次"
android:textSize="@dimen/sp_10" />
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/tv_jc"
android:layout_width="@dimen/dp_48"
android:layout_height="@dimen/dp_24"
android:layout_marginTop="@dimen/dp_60"
android:background="@mipmap/skzd_rigth_bj"
android:gravity="center"
android:text="奖池"
android:textColor="@color/white"
android:textSize="@dimen/sp_12"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_gz"
android:layout_width="@dimen/dp_48"
android:layout_height="@dimen/dp_24"
android:background="@mipmap/skzd_left_bj"
android:gravity="center"
android:text="规则"
android:textColor="@color/white"
android:textSize="@dimen/sp_12"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/tv_jc" />
<TextView
android:id="@+id/tv_jl"
android:layout_width="@dimen/dp_48"
android:layout_height="@dimen/dp_24"
android:layout_marginTop="@dimen/dp_10"
android:background="@mipmap/skzd_left_bj"
android:gravity="center"
android:text="记录"
android:textColor="@color/white"
android:textSize="@dimen/sp_12"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_gz" />
<LinearLayout
android:id="@+id/ll_yx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_60"
android:layout_marginBottom="@dimen/dp_17"
android:gravity="center"
android:orientation="horizontal"
app:layout_constraintBottom_toTopOf="@+id/lottery_buttons_layout"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/gift7">
<TextView
android:id="@+id/tv_lock_yx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="音效"
android:textColor="@color/white"
android:textSize="@dimen/sp_14"
/>
<Switch
android:id="@+id/sw_lock_yx"
android:layout_width="@dimen/dp_37"
android:layout_height="@dimen/dp_20"
android:layout_marginStart="@dimen/dp_5"
android:background="@drawable/room_tuner_selector_switch"
android:thumb="@android:color/transparent"
tools:ignore="UseSwitchCompatOrMaterialXml" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_tx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_20"
android:layout_marginBottom="@dimen/dp_17"
android:gravity="center"
android:orientation="horizontal"
app:layout_constraintStart_toEndOf="@+id/ll_yx"
app:layout_constraintTop_toTopOf="@+id/ll_yx">
<TextView
android:id="@+id/tv_tx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="特效"
android:textColor="@color/white"
android:textSize="@dimen/sp_14"
/>
<Switch
android:id="@+id/sw_tex"
android:layout_width="@dimen/dp_37"
android:layout_height="@dimen/dp_20"
android:layout_marginStart="@dimen/dp_5"
android:background="@drawable/room_tuner_selector_switch"
android:thumb="@android:color/transparent"
tools:ignore="UseSwitchCompatOrMaterialXml" />
</LinearLayout>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift1"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginStart="@dimen/dp_34"
android:layout_marginTop="@dimen/dp_5"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_jl"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/skzd_x"
app:normalBackground="@mipmap/skzd_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift2"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginStart="@dimen/dp_34"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toEndOf="@+id/gift1"
app:layout_constraintTop_toTopOf="@+id/gift1"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/skzd_x"
app:normalBackground="@mipmap/skzd_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift3"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginStart="@dimen/dp_34"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toEndOf="@+id/gift2"
app:layout_constraintTop_toTopOf="@+id/gift2"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/skzd_x"
app:normalBackground="@mipmap/skzd_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift4"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginTop="@dimen/dp_10"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toStartOf="@+id/gift3"
app:layout_constraintEnd_toEndOf="@+id/gift3"
app:layout_constraintTop_toBottomOf="@+id/gift3"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/skzd_x"
app:normalBackground="@mipmap/skzd_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift5"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginTop="@dimen/dp_10"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toStartOf="@+id/gift4"
app:layout_constraintTop_toBottomOf="@+id/gift4"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/skzd_x"
app:normalBackground="@mipmap/skzd_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift6"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:layout_marginTop="@dimen/dp_10"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintEnd_toEndOf="@id/gift5"
app:layout_constraintStart_toStartOf="@id/gift5"
app:layout_constraintTop_toBottomOf="@+id/gift5"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/skzd_x"
app:normalBackground="@mipmap/skzd_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift7"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toStartOf="@id/gift2"
app:layout_constraintEnd_toEndOf="@+id/gift2"
app:layout_constraintTop_toTopOf="@id/gift6"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/skzd_x"
app:normalBackground="@mipmap/skzd_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift8"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toStartOf="@+id/gift1"
app:layout_constraintTop_toBottomOf="@+id/gift9"
app:layout_constraintTop_toTopOf="@id/gift7"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/skzd_x"
app:normalBackground="@mipmap/skzd_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift9"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toStartOf="@+id/gift1"
app:layout_constraintTop_toTopOf="@id/gift5"
app:layout_constraintBottom_toBottomOf="@id/gift5"
app:layout_constraintEnd_toEndOf="@+id/gift8"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/skzd_x"
app:normalBackground="@mipmap/skzd_w"/>
<com.xscm.moduleutil.widget.GiftCardView
android:id="@+id/gift10"
android:layout_width="0dp"
android:layout_height="@dimen/dp_93"
android:outlineProvider="none"
android:stateListAnimator="@null"
app:giftCount="66666"
app:giftIcon="@mipmap/ic_launcher"
app:giftName="柔情似水"
app:layout_constraintStart_toStartOf="@+id/gift1"
app:layout_constraintTop_toTopOf="@id/gift4"
app:layout_constraintEnd_toEndOf="@+id/gift1"
app:layout_constraintBottom_toBottomOf="@+id/gift4"
app:layout_constraintWidth_percent="0.2"
app:selectedBackground="@mipmap/skzd_x"
app:normalBackground="@mipmap/skzd_w"/>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/ll_progress"
android:layout_width="@dimen/dp_148"
android:layout_height="@dimen/dp_148"
android:background="@mipmap/skzj_z_b"
android:orientation="vertical"
app:layout_constraintEnd_toStartOf="@+id/gift4"
app:layout_constraintStart_toEndOf="@+id/gift10"
app:layout_constraintTop_toBottomOf="@+id/gift2">
<FrameLayout
android:layout_width="@dimen/dp_70"
android:layout_height="@dimen/dp_70"
android:layout_marginTop="@dimen/dp_20"
android:background="@drawable/circle_background"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<!-- 进度条 -->
<com.xscm.moduleutil.widget.CircularProgressView
android:id="@+id/circular_progress_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:backColor="@color/color_transparent"
app:backWidth="@dimen/dp_13"
app:progColor="#D484F7"
app:progWidth="@dimen/dp_13"
app:progress="50" />
<TextView
android:id="@+id/tv_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textColor="@color/white"
android:textSize="@dimen/sp_16"
android:textStyle="bold"
tools:text="60%" />
</FrameLayout>
<!-- 正式开始按钮 -->
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/tv_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="-30dp"
android:background="@mipmap/dengt"
app:layout_constraintEnd_toEndOf="@+id/ll_progress"
app:layout_constraintStart_toStartOf="@+id/ll_progress"
app:layout_constraintTop_toBottomOf="@+id/ll_progress" />
<!-- 兑换提示 -->
<LinearLayout
android:id="@+id/exchange_layout"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_28"
android:background="@drawable/bg_r45_8c3ca2"
android:gravity="center"
android:orientation="horizontal"
android:paddingStart="@dimen/dp_9"
android:paddingEnd="@dimen/dp_9"
app:layout_constraintBottom_toTopOf="@+id/gift8"
app:layout_constraintEnd_toEndOf="@+id/ll_progress"
app:layout_constraintStart_toStartOf="@+id/ll_progress"
app:layout_constraintTop_toBottomOf="@+id/tv_start">
<TextView
android:id="@+id/tv_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@mipmap/jinb"
android:drawablePadding="@dimen/dp_5"
tools:text="66666"
android:textColor="#F8E837"
android:textSize="@dimen/sp_10" />
<TextView
android:id="@+id/tv_dh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:text="去兑换"
android:textColor="#F8E837"
android:textSize="@dimen/sp_10" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<layout 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">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_prize"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/tkzj">
<ImageView
android:id="@+id/im_jc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_36"
android:src="@mipmap/jiangc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/gv_gift"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_10"
android:nestedScrollingEnabled="false"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:layout_constraintTop_toBottomOf="@+id/im_jc"
app:spanCount="3"
tools:listitem="@layout/item_prize_pool" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -1,45 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_margin="8dp">
xmlns:tools="http://schemas.android.com/tools">
<com.google.android.material.card.MaterialCardView
android:id="@+id/card_gift"
<ImageView
android:layout_width="@dimen/dp_80"
android:layout_height="@dimen/dp_80"
android:id="@+id/iv_prize_pool"
android:scaleType="centerCrop"
android:src="@mipmap/tkzj_z"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
<ImageView
android:id="@+id/iv_gift_image"
android:layout_width="@dimen/dp_50"
android:layout_height="@dimen/dp_52"
app:layout_constraintTop_toTopOf="@+id/iv_prize_pool"
app:layout_constraintBottom_toBottomOf="@+id/iv_prize_pool"
app:layout_constraintStart_toStartOf="@+id/iv_prize_pool"
app:layout_constraintEnd_toEndOf="@+id/iv_prize_pool"
android:scaleType="fitCenter"/>
<TextView
android:id="@+id/gift_name"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_14"
app:layout_constraintStart_toStartOf="@+id/iv_gift_image"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="@+id/iv_prize_pool"
android:textColor="@color/white"
android:textSize="@dimen/sp_12"
android:gravity="center"
tools:text="礼物名称" />
<TextView
android:id="@+id/tv_user_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
app:cardCornerRadius="16dp"
app:cardElevation="4dp">
android:layout_marginTop="@dimen/dp_10"
tools:text="中奖名单"
android:textSize="@dimen/sp_12"
android:textColor="@color/white"
android:gravity="center"
app:layout_constraintStart_toStartOf="@+id/iv_prize_pool"
app:layout_constraintTop_toBottomOf="@+id/iv_prize_pool"
app:layout_constraintEnd_toEndOf="@+id/iv_prize_pool"
/>
<ImageView
android:id="@+id/img_gift_icon"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@mipmap/ic_launcher"
android:scaleType="centerCrop" />
<TextView
android:id="@+id/tv_gift_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="2025-8-28 18:41:53"
android:textSize="@dimen/sp_10"
android:textColor="#5B5B5B"
android:gravity="center"
app:layout_constraintStart_toStartOf="@+id/tv_user_name"
app:layout_constraintTop_toBottomOf="@+id/tv_user_name"
app:layout_constraintEnd_toEndOf="@+id/tv_user_name"/>
<TextView
android:id="@+id/tv_gift_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/img_gift_icon"
android:layout_centerHorizontal="true"
android:text="柔情似水"
android:textSize="12sp"
android:textColor="#FFFFFF" />
<TextView
android:id="@+id/tv_gift_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tv_gift_name"
android:layout_centerHorizontal="true"
android:text="66666"
android:textSize="10sp"
android:textColor="#FFD700" />
</com.google.android.material.card.MaterialCardView>
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<ImageView
android:layout_width="@dimen/dp_100"
android:layout_height="@dimen/dp_100"
android:id="@+id/iv_prize_pool"
android:scaleType="centerCrop"
android:src="@mipmap/tkzj_z"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
<ImageView
android:id="@+id/iv_gift_image"
android:layout_width="@dimen/dp_62"
android:layout_height="@dimen/dp_62"
app:layout_constraintTop_toTopOf="@+id/iv_prize_pool"
app:layout_constraintBottom_toBottomOf="@+id/iv_prize_pool"
app:layout_constraintStart_toStartOf="@+id/iv_prize_pool"
app:layout_constraintEnd_toEndOf="@+id/iv_prize_pool"
android:scaleType="fitCenter"/>
<TextView
android:id="@+id/tv_gift_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
tools:text="中奖名单"
android:textSize="@dimen/sp_12"
android:textColor="@color/white"
android:gravity="center"
app:layout_constraintStart_toStartOf="@+id/iv_prize_pool"
app:layout_constraintTop_toBottomOf="@+id/iv_prize_pool"
app:layout_constraintEnd_toEndOf="@+id/iv_prize_pool"
/>
<TextView
android:id="@+id/tv_gift_pic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="中奖名单"
android:textSize="@dimen/sp_10"
android:drawableLeft="@mipmap/jinb"
android:drawablePadding="@dimen/dp_2"
android:textColor="#C7BF62"
android:gravity="center"
app:layout_constraintStart_toStartOf="@+id/tv_gift_name"
app:layout_constraintTop_toBottomOf="@+id/tv_gift_name"
app:layout_constraintEnd_toEndOf="@+id/tv_gift_name"/>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -4,6 +4,7 @@
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
android:gravity="center"
android:background="@color/color_transparent"
android:layout_gravity="center"
android:orientation="vertical"
>
@@ -52,12 +53,12 @@
<TextView
android:id="@+id/result"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_15"
android:layout_height="@dimen/dp_20"
android:gravity="center"
tools:text="x1000"
android:textStyle="bold"
android:textColor="#024AA7"
android:textSize="18sp"
android:textSize="@dimen/sp_16"
android:visibility="gone"/>
</FrameLayout>

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

View File

@@ -289,6 +289,8 @@
<color name="dianzan2">#FF9249FF</color>
<color name="dianzan1">#212121</color>
<color name="EFF2F8">#EFF2F8</color>
<color name="color_5B5B5B">#5B5B5B</color>
<color name="color_C7BF62">#C7BF62</color>
<!-- 主题色 -->

View File

@@ -362,16 +362,18 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
mBinding.llGiftRule.setVisibility(View.GONE);
} else {
if (event.gift.getActivities_id() == 5) {
String userId = gifyuseradapter.getUserIdToString();
if (userId == null || userId.isEmpty()) {
ToastUtils.show("请先选择人员");
return;
} else {
// 直接链式调用显示对话框
GiftLotteryDialog.newInstance(event.gift.getGift_bag()+"", roomId, userId)
.show(getChildFragmentManager(), "GiftLotteryDialog");
return;
}
showGiftLotteryDialog(event.gift, roomId);
return;
// String userId = gifyuseradapter.getUserIdToString();
// if (userId == null || userId.isEmpty()) {
// ToastUtils.show("请先选择人员");
// return;
// } else {
// // 直接链式调用显示对话框
// GiftLotteryDialog.newInstance(event.gift.getGift_bag()+"", roomId, userId)
// .show(getChildFragmentManager(), "GiftLotteryDialog");
// return;
// }
}
mBinding.llGiftRule.setVisibility(View.VISIBLE);
setGiftDetail(event.gift);
@@ -384,7 +386,22 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
// }
roonGiftModel = event.gift;
}
private GiftLotteryDialog currentDialog;
private void showGiftLotteryDialog(RoonGiftModel gift, String roomId) {
String userId = gifyuseradapter.getUserIdToString();
if (userId == null || userId.isEmpty()) {
ToastUtils.show("请先选择人员");
return;
}
// 如果当前dialog存在且正在显示先关闭
if (currentDialog != null && currentDialog.isVisible()) {
currentDialog.dismiss();
}
currentDialog = GiftLotteryDialog.newInstance(gift.getGift_bag()+"", roomId, userId);
currentDialog.show(getChildFragmentManager(), "GiftLotteryDialog");
}
public void setGiftDetail(RoonGiftModel giftDetailResp) {
if (giftDetailResp == null) {
return;

View File

@@ -190,8 +190,13 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
} else if (id == R.id.im_room_gz) {
MvpPre.userGuanz(user_id, "1");
}else if (id == R.id.im_room_sl){
userInfo.setPit_number(pit_number);
RoomGiftDialogFragment.show( null,userInfo, room_id,0,"",getParentFragmentManager());
if (userInfo!=null) {
if (pit_number == null) {
pit_number = "";
}
userInfo.setPit_number(pit_number);
RoomGiftDialogFragment.show(null, userInfo, room_id, 0, "", getParentFragmentManager());
}
dismiss();
}else if (id == R.id.room_lh){
MvpPre.addBlackList(user_id);

View File

@@ -289,7 +289,7 @@
android:textSize="@dimen/sp_12"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />/>
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -127,7 +127,7 @@
android:layout_alignParentEnd="true"
android:gravity="center"
android:layout_marginStart="@dimen/dp_4"
android:text="全部提现"
android:text="全部兑换"
android:textSize="@dimen/sp_12"
android:textColor="#0DFB89"
/>