1.合并分支
This commit is contained in:
@@ -0,0 +1,269 @@
|
||||
//package com.xscm.moduleutil.view;
|
||||
//
|
||||
//import android.content.Context;
|
||||
//
|
||||
//
|
||||
//
|
||||
//import android.content.res.TypedArray;
|
||||
//import android.graphics.drawable.Drawable;
|
||||
//import android.util.AttributeSet;
|
||||
//import android.util.TypedValue;
|
||||
//import android.view.Gravity;
|
||||
//import android.view.View;
|
||||
//import android.view.animation.Animation;
|
||||
//import android.view.animation.RotateAnimation;
|
||||
//import android.widget.Button;
|
||||
//import android.widget.ImageView;
|
||||
//import android.widget.RelativeLayout;
|
||||
//import android.widget.TextView;
|
||||
//
|
||||
//import androidx.annotation.Nullable;
|
||||
//
|
||||
//import com.xscm.moduleutil.R;
|
||||
//
|
||||
//
|
||||
//public class QXMeetGiftView extends RelativeLayout {
|
||||
//
|
||||
// private TextView giftNameLabel;
|
||||
// private ImageView giftPriceBgView;
|
||||
// private Button giftCoin;
|
||||
// private ImageView bgImageView;
|
||||
// private ImageView giftBgImageView;
|
||||
// private ImageView giftImageView;
|
||||
//
|
||||
// // 自定义属性变量
|
||||
// private int normalBgRes;
|
||||
// private int lockBgRes;
|
||||
// private int giftLightBgRes;
|
||||
// private int priceBgRes;
|
||||
// private int coinIconRes;
|
||||
// private int giftNameColor;
|
||||
// private int coinTextColor;
|
||||
// private float giftNameSize;
|
||||
// private float coinTextSize;
|
||||
// private int bgBottomMargin;
|
||||
// private int giftImageMargin;
|
||||
// private int priceBgHeight;
|
||||
// private int priceBgBottomMargin;
|
||||
// private int lockGiftSize;
|
||||
// private int rotateDuration;
|
||||
//
|
||||
// private boolean isLockGift;
|
||||
// private Object model;
|
||||
//
|
||||
// public QXMeetGiftView(Context context) {
|
||||
// this(context, null);
|
||||
// }
|
||||
//
|
||||
// public QXMeetGiftView(Context context, @Nullable AttributeSet attrs) {
|
||||
// this(context, attrs, 0);
|
||||
// }
|
||||
//
|
||||
// public QXMeetGiftView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
|
||||
// super(context, attrs, defStyleAttr);
|
||||
// // 解析自定义属性
|
||||
// initAttrs(context, attrs);
|
||||
// // 初始化子视图
|
||||
// initSubviews(context);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 解析自定义属性,设置默认值
|
||||
// */
|
||||
// private void initAttrs(Context context, AttributeSet attrs) {
|
||||
// TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.QXMeetGiftView);
|
||||
//
|
||||
// // 背景资源(默认使用原代码中的资源)
|
||||
// normalBgRes = ta.getResourceId(R.styleable.QXMeetGiftView_normalBg, R.drawable.ac_left_gift_bg);
|
||||
// lockBgRes = ta.getResourceId(R.styleable.QXMeetGiftView_lockBg, R.drawable.ac_lock_gift_bg);
|
||||
// giftLightBgRes = ta.getResourceId(R.styleable.QXMeetGiftView_giftLightBg, R.drawable.ac_lock_gift_light_bg);
|
||||
// priceBgRes = ta.getResourceId(R.styleable.QXMeetGiftView_priceBg, R.drawable.ac_meet_gift_name_bg);
|
||||
// coinIconRes = ta.getResourceId(R.styleable.QXMeetGiftView_coinIcon, R.drawable.sky_item_coin);
|
||||
//
|
||||
// // 文字样式
|
||||
// giftNameColor = ta.getColor(R.styleable.QXMeetGiftView_giftNameColor, 0xFFFFFFFF);
|
||||
// coinTextColor = ta.getColor(R.styleable.QXMeetGiftView_coinTextColor, 0xFFC7BF62);
|
||||
// giftNameSize = ta.getDimension(R.styleable.QXMeetGiftView_giftNameSize, sp2px(12));
|
||||
// coinTextSize = ta.getDimension(R.styleable.QXMeetGiftView_coinTextSize, sp2px(10));
|
||||
//
|
||||
// // 尺寸配置
|
||||
// bgBottomMargin = ta.getDimensionPixelOffset(R.styleable.QXMeetGiftView_bgBottomMargin, dp2px(19));
|
||||
// giftImageMargin = ta.getDimensionPixelOffset(R.styleable.QXMeetGiftView_giftImageMargin, dp2px(6));
|
||||
// priceBgHeight = ta.getDimensionPixelOffset(R.styleable.QXMeetGiftView_priceBgHeight, dp2px(15));
|
||||
// priceBgBottomMargin = ta.getDimensionPixelOffset(R.styleable.QXMeetGiftView_priceBgBottomMargin, dp2px(15));
|
||||
// lockGiftSize = ta.getDimensionPixelOffset(R.styleable.QXMeetGiftView_lockGiftSize, dp2px(62));
|
||||
//
|
||||
// // 动画时长
|
||||
// rotateDuration = ta.getInt(R.styleable.QXMeetGiftView_rotateDuration, 3000);
|
||||
//
|
||||
// ta.recycle(); // 回收资源,避免内存泄漏
|
||||
// }
|
||||
//
|
||||
// private void initSubviews(Context context) {
|
||||
// // 1. 主背景
|
||||
// bgImageView = new ImageView(context);
|
||||
// bgImageView.setScaleType(ImageView.ScaleType.FIT_XY);
|
||||
// bgImageView.setImageResource(normalBgRes); // 使用自定义属性
|
||||
// LayoutParams bgParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
|
||||
// bgParams.addRule(ALIGN_PARENT_TOP);
|
||||
// bgParams.addRule(ALIGN_PARENT_LEFT);
|
||||
// bgParams.addRule(ALIGN_PARENT_RIGHT);
|
||||
// bgParams.bottomMargin = bgBottomMargin; // 使用自定义属性
|
||||
// addView(bgImageView, bgParams);
|
||||
//
|
||||
// // 2. 礼物光效背景
|
||||
// giftBgImageView = new ImageView(context);
|
||||
// giftBgImageView.setScaleType(ImageView.ScaleType.FIT_XY);
|
||||
// giftBgImageView.setImageResource(giftLightBgRes); // 使用自定义属性
|
||||
// giftBgImageView.setVisibility(View.GONE);
|
||||
// LayoutParams giftBgParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
|
||||
// giftBgParams.addRule(ALIGN_PARENT_TOP);
|
||||
// giftBgParams.addRule(ALIGN_PARENT_LEFT);
|
||||
// giftBgParams.addRule(ALIGN_PARENT_RIGHT);
|
||||
// giftBgParams.bottomMargin = bgBottomMargin; // 使用自定义属性
|
||||
// addView(giftBgImageView, giftBgParams);
|
||||
//
|
||||
// // 3. 礼物图片
|
||||
// giftImageView = new ImageView(context);
|
||||
// giftImageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
|
||||
// LayoutParams giftImageParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
|
||||
// giftImageParams.addRule(CENTER_IN_PARENT);
|
||||
// giftImageParams.setMargins(giftImageMargin, giftImageMargin, giftImageMargin, 0); // 使用自定义属性
|
||||
// addView(giftImageView, giftImageParams);
|
||||
//
|
||||
// // 4. 价格背景
|
||||
// giftPriceBgView = new ImageView(context);
|
||||
// giftPriceBgView.setImageResource(priceBgRes); // 使用自定义属性
|
||||
// LayoutParams priceBgParams = new LayoutParams(LayoutParams.MATCH_PARENT, priceBgHeight); // 使用自定义属性
|
||||
// priceBgParams.addRule(ALIGN_PARENT_BOTTOM);
|
||||
// priceBgParams.bottomMargin = priceBgBottomMargin; // 使用自定义属性
|
||||
// addView(giftPriceBgView, priceBgParams);
|
||||
//
|
||||
// // 5. 金币按钮
|
||||
// giftCoin = new Button(context);
|
||||
// giftCoin.setTextColor(coinTextColor); // 使用自定义属性
|
||||
// giftCoin.setTextSize(TypedValue.COMPLEX_UNIT_PX, coinTextSize); // 使用自定义属性
|
||||
// // 金币图标
|
||||
// Drawable coinDrawable = getResources().getDrawable(coinIconRes); // 使用自定义属性
|
||||
// coinDrawable.setBounds(0, 0, dp2px(12), dp2px(12));
|
||||
// giftCoin.setCompoundDrawables(coinDrawable, null, null, null);
|
||||
// giftCoin.setBackgroundColor(0x00000000); // 透明背景
|
||||
// LayoutParams coinParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
|
||||
// coinParams.addRule(CENTER_IN_PARENT, TRUE);
|
||||
// addView(giftCoin, coinParams);
|
||||
//
|
||||
// // 6. 礼物名称
|
||||
// giftNameLabel = new TextView(context);
|
||||
// giftNameLabel.setTextColor(giftNameColor); // 使用自定义属性
|
||||
// giftNameLabel.setTextSize(TypedValue.COMPLEX_UNIT_PX, giftNameSize); // 使用自定义属性
|
||||
// giftNameLabel.setGravity(Gravity.CENTER);
|
||||
// LayoutParams nameParams = new LayoutParams(LayoutParams.MATCH_PARENT, priceBgHeight); // 使用自定义属性
|
||||
// nameParams.addRule(ALIGN_PARENT_BOTTOM);
|
||||
// addView(giftNameLabel, nameParams);
|
||||
//
|
||||
// // 调整层级
|
||||
// bringChildToFront(giftPriceBgView);
|
||||
// bringChildToFront(giftCoin);
|
||||
// }
|
||||
//
|
||||
// public void setIsLockGift(boolean isLockGift) {
|
||||
// this.isLockGift = isLockGift;
|
||||
//
|
||||
// // 设置背景图片(使用自定义属性)
|
||||
// int bgResource = isLockGift ? lockBgRes : normalBgRes;
|
||||
// bgImageView.setImageResource(bgResource);
|
||||
//
|
||||
// // 显示/隐藏光效背景
|
||||
// giftBgImageView.setVisibility(isLockGift ? View.VISIBLE : View.GONE);
|
||||
//
|
||||
// // 调整礼物图片尺寸(使用自定义属性)
|
||||
// LayoutParams params = (LayoutParams) giftImageView.getLayoutParams();
|
||||
// if (isLockGift) {
|
||||
// params.width = lockGiftSize;
|
||||
// params.height = lockGiftSize;
|
||||
// params.setMargins(0, 0, 0, 0);
|
||||
// } else {
|
||||
// params.width = LayoutParams.MATCH_PARENT;
|
||||
// params.height = LayoutParams.WRAP_CONTENT;
|
||||
// params.setMargins(giftImageMargin, giftImageMargin, giftImageMargin, 0);
|
||||
// }
|
||||
// giftImageView.setLayoutParams(params);
|
||||
// }
|
||||
//
|
||||
// public void setModel(Object model) {
|
||||
// this.model = model;
|
||||
// // 实际业务中解析模型数据
|
||||
// /*
|
||||
// if (model instanceof QXDrawGiftModel) {
|
||||
// QXDrawGiftModel giftModel = (QXDrawGiftModel) model;
|
||||
// giftNameLabel.setText(giftModel.getGiftName());
|
||||
// giftCoin.setText(giftModel.getGiftPrice());
|
||||
// // Glide.with(getContext()).load(giftModel.getBaseImage()).into(giftImageView);
|
||||
// }
|
||||
// */
|
||||
// }
|
||||
//
|
||||
// public void startAnimation() {
|
||||
// // 礼物图片顺时针旋转(使用自定义动画时长)
|
||||
// RotateAnimation rotateAnimation = new RotateAnimation(
|
||||
// 0, 360,
|
||||
// Animation.RELATIVE_TO_SELF, 0.5f,
|
||||
// Animation.RELATIVE_TO_SELF, 0.5f
|
||||
// );
|
||||
// rotateAnimation.setDuration(rotateDuration);
|
||||
// rotateAnimation.setRepeatCount(Animation.INFINITE);
|
||||
// rotateAnimation.setRepeatMode(Animation.RESTART);
|
||||
// rotateAnimation.setInterpolator(getContext(), android.R.anim.linear_interpolator);
|
||||
// giftImageView.startAnimation(rotateAnimation);
|
||||
//
|
||||
// // 光效背景逆时针旋转
|
||||
// RotateAnimation rotateAnimation1 = new RotateAnimation(
|
||||
// 0, -360,
|
||||
// Animation.RELATIVE_TO_SELF, 0.5f,
|
||||
// Animation.RELATIVE_TO_SELF, 0.5f
|
||||
// );
|
||||
// rotateAnimation1.setDuration(rotateDuration);
|
||||
// rotateAnimation1.setRepeatCount(Animation.INFINITE);
|
||||
// rotateAnimation1.setRepeatMode(Animation.RESTART);
|
||||
// rotateAnimation1.setInterpolator(getContext(), android.R.anim.linear_interpolator);
|
||||
// giftBgImageView.startAnimation(rotateAnimation1);
|
||||
// }
|
||||
//
|
||||
// public void resetAnimation() {
|
||||
// giftImageView.clearAnimation();
|
||||
// giftBgImageView.clearAnimation();
|
||||
// }
|
||||
//
|
||||
// public void stopAnimation() {
|
||||
// giftImageView.clearAnimation();
|
||||
// giftBgImageView.clearAnimation();
|
||||
// }
|
||||
//
|
||||
// // dp转px
|
||||
// private int dp2px(int dp) {
|
||||
// return (int) TypedValue.applyDimension(
|
||||
// TypedValue.COMPLEX_UNIT_DIP,
|
||||
// dp,
|
||||
// getResources().getDisplayMetrics()
|
||||
// );
|
||||
// }
|
||||
//
|
||||
// // sp转px
|
||||
// private int sp2px(int sp) {
|
||||
// return (int) TypedValue.applyDimension(
|
||||
// TypedValue.COMPLEX_UNIT_SP,
|
||||
// sp,
|
||||
// getResources().getDisplayMetrics()
|
||||
// );
|
||||
// }
|
||||
//
|
||||
// // Getter方法
|
||||
// public TextView getGiftNameLabel() { return giftNameLabel; }
|
||||
// public ImageView getGiftPriceBgView() { return giftPriceBgView; }
|
||||
// public Button getGiftCoin() { return giftCoin; }
|
||||
// public ImageView getBgImageView() { return bgImageView; }
|
||||
// public ImageView getGiftBgImageView() { return giftBgImageView; }
|
||||
// public ImageView getGiftImageView() { return giftImageView; }
|
||||
// public boolean isLockGift() { return isLockGift; }
|
||||
// public Object getModel() { return model; }
|
||||
//}
|
||||
@@ -89,6 +89,10 @@
|
||||
app:layout_constraintTop_toTopOf="@+id/tv_bd"
|
||||
tools:text="3" />
|
||||
|
||||
|
||||
<!-- 自定义礼物视图 -->
|
||||
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_time_m"
|
||||
android:layout_width="@dimen/dp_18"
|
||||
@@ -136,20 +140,20 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_195"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:background="@mipmap/tour_zj_bj"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_bd">
|
||||
|
||||
<!-- <ImageView-->
|
||||
<!-- android:id="@+id/iv_z_bj"-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:layout_height="@dimen/dp_195"-->
|
||||
<!-- android:scaleType="fitCenter"-->
|
||||
<!-- android:src="@mipmap/tour_zj_bj"-->
|
||||
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
|
||||
<!-- app:layout_constraintTop_toTopOf="parent" -->
|
||||
<!-- />-->
|
||||
<!-- <ImageView-->
|
||||
<!-- android:id="@+id/iv_z_bj"-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:layout_height="@dimen/dp_195"-->
|
||||
<!-- android:scaleType="fitCenter"-->
|
||||
<!-- android:src="@mipmap/tour_zj_bj"-->
|
||||
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
|
||||
<!-- app:layout_constraintTop_toTopOf="parent" -->
|
||||
<!-- />-->
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/gift_l"
|
||||
@@ -176,8 +180,8 @@
|
||||
android:layout_gravity="center"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/black"
|
||||
android:textStyle="bold"
|
||||
android:textSize="@dimen/sp_12"
|
||||
android:textStyle="bold"
|
||||
tools:text="请选择礼物" />
|
||||
|
||||
<TextView
|
||||
@@ -195,10 +199,10 @@
|
||||
android:id="@+id/tv_gift_count"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@mipmap/xlh_num"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/color_FF333333"
|
||||
android:textSize="@dimen/sp_12"
|
||||
android:background="@mipmap/xlh_num"
|
||||
tools:text="999" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -207,70 +211,69 @@
|
||||
android:id="@+id/gift_l2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:layout_marginStart="@dimen/dp_25"
|
||||
android:background="@mipmap/xlh_g_2"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintBottom_toBottomOf="parent"/>
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/give_im"
|
||||
android:layout_width="@dimen/dp_40"
|
||||
android:layout_height="@dimen/dp_40"
|
||||
app:layout_constraintStart_toStartOf="@+id/gift_l2"
|
||||
app:layout_constraintEnd_toEndOf="@+id/gift_l2"
|
||||
app:layout_constraintTop_toTopOf="@+id/gift_l2"
|
||||
android:layout_marginBottom="@dimen/dp_20"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/gift_l2"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@mipmap/ic_launcher"
|
||||
android:scaleType="fitCenter"/>
|
||||
app:layout_constraintBottom_toBottomOf="@+id/gift_l2"
|
||||
app:layout_constraintEnd_toEndOf="@+id/gift_l2"
|
||||
app:layout_constraintStart_toStartOf="@+id/gift_l2"
|
||||
app:layout_constraintTop_toTopOf="@+id/gift_l2" />
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/gift_l3"
|
||||
android:layout_width="@dimen/dp_56"
|
||||
android:layout_height="@dimen/dp_73"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:layout_marginEnd="@dimen/dp_25"
|
||||
android:background="@mipmap/xlh_gift_user"
|
||||
android:orientation="vertical"
|
||||
/>
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<com.xscm.moduleutil.widget.GifAvatarOvalView
|
||||
android:id="@+id/user_pic"
|
||||
android:layout_width="@dimen/dp_36"
|
||||
android:layout_height="@dimen/dp_36"
|
||||
app:layout_constraintStart_toStartOf="@+id/gift_l3"
|
||||
app:layout_constraintEnd_toEndOf="@+id/gift_l3"
|
||||
app:layout_constraintTop_toTopOf="@+id/gift_l3"
|
||||
android:layout_marginTop="@dimen/dp_2"
|
||||
android:scaleType="fitCenter"/>
|
||||
android:scaleType="fitCenter"
|
||||
app:layout_constraintEnd_toEndOf="@+id/gift_l3"
|
||||
app:layout_constraintStart_toStartOf="@+id/gift_l3"
|
||||
app:layout_constraintTop_toTopOf="@+id/gift_l3" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="@dimen/dp_43"
|
||||
android:layout_height="@dimen/dp_43"
|
||||
app:layout_constraintStart_toStartOf="@+id/gift_l3"
|
||||
app:layout_constraintEnd_toEndOf="@+id/gift_l3"
|
||||
app:layout_constraintTop_toTopOf="@+id/gift_l3"
|
||||
android:layout_marginBottom="@dimen/dp_2"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@mipmap/xlh_image"
|
||||
android:scaleType="fitCenter"/>
|
||||
app:layout_constraintEnd_toEndOf="@+id/gift_l3"
|
||||
app:layout_constraintStart_toStartOf="@+id/gift_l3"
|
||||
app:layout_constraintTop_toTopOf="@+id/gift_l3" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/user_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_14"
|
||||
app:layout_constraintStart_toStartOf="@+id/gift_l3"
|
||||
app:layout_constraintEnd_toEndOf="@+id/gift_l3"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/gift_l3"
|
||||
android:layout_marginBottom="@dimen/dp_5"
|
||||
tools:text="请选择礼物"
|
||||
android:gravity="center"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="@dimen/sp_10"/>
|
||||
android:textSize="@dimen/sp_10"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/gift_l3"
|
||||
app:layout_constraintEnd_toEndOf="@+id/gift_l3"
|
||||
app:layout_constraintStart_toStartOf="@+id/gift_l3"
|
||||
tools:text="请选择礼物" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
@@ -281,24 +284,23 @@
|
||||
android:layout_marginBottom="@dimen/dp_15"
|
||||
android:orientation="horizontal"
|
||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||
app:layout_constraintTop_toBottomOf="@+id/cl_gift"
|
||||
app:layout_constraintBottom_toTopOf="@+id/exchange_layout"
|
||||
/>
|
||||
app:layout_constraintTop_toBottomOf="@+id/cl_gift" />
|
||||
|
||||
<!-- <HorizontalScrollView-->
|
||||
<!-- android:id="@+id/horizontalScrollView"-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:layout_height="@dimen/dp_200"-->
|
||||
<!-- android:scrollbars="none"-->
|
||||
<!-- app:layout_constraintTop_toBottomOf="@+id/cl_gift"-->
|
||||
<!-- app:layout_constraintBottom_toTopOf="@+id/exchange_layout">-->
|
||||
<!-- <HorizontalScrollView-->
|
||||
<!-- android:id="@+id/horizontalScrollView"-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:layout_height="@dimen/dp_200"-->
|
||||
<!-- android:scrollbars="none"-->
|
||||
<!-- app:layout_constraintTop_toBottomOf="@+id/cl_gift"-->
|
||||
<!-- app:layout_constraintBottom_toTopOf="@+id/exchange_layout">-->
|
||||
|
||||
<!-- <LinearLayout-->
|
||||
<!-- android:id="@+id/prizeContainer"-->
|
||||
<!-- android:layout_width="wrap_content"-->
|
||||
<!-- android:layout_height="wrap_content"-->
|
||||
<!-- android:orientation="horizontal" />-->
|
||||
<!-- </HorizontalScrollView>-->
|
||||
<!-- <LinearLayout-->
|
||||
<!-- android:id="@+id/prizeContainer"-->
|
||||
<!-- android:layout_width="wrap_content"-->
|
||||
<!-- android:layout_height="wrap_content"-->
|
||||
<!-- android:orientation="horizontal" />-->
|
||||
<!-- </HorizontalScrollView>-->
|
||||
|
||||
|
||||
<TextView
|
||||
@@ -307,41 +309,39 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginEnd="@dimen/dp_10"
|
||||
android:textSize="@dimen/sp_10"
|
||||
android:text="跳过动画"
|
||||
android:textColor="#ABABAB"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/exchange_layout"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/exchange_layout"
|
||||
android:textSize="@dimen/sp_10"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
app:layout_constraintBottom_toBottomOf="@+id/exchange_layout"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/exchange_layout" />
|
||||
|
||||
<View
|
||||
android:id="@+id/v_checkbox"
|
||||
android:layout_width="@dimen/dp_20"
|
||||
android:layout_height="@dimen/dp_20"
|
||||
android:background="@drawable/selector_custom_checkbox"
|
||||
android:focusable="false"
|
||||
android:clickable="true"
|
||||
app:layout_constraintEnd_toStartOf="@+id/tv_option"
|
||||
app:layout_constraintTop_toTopOf="@+id/exchange_layout"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/exchange_layout"
|
||||
android:focusable="false"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
app:layout_constraintBottom_toBottomOf="@+id/exchange_layout"
|
||||
app:layout_constraintEnd_toStartOf="@+id/tv_option"
|
||||
app:layout_constraintTop_toTopOf="@+id/exchange_layout" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/exchange_layout"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_28"
|
||||
android:layout_marginBottom="@dimen/dp_20"
|
||||
android:background="@drawable/bg_r45_2d449f"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginBottom="@dimen/dp_20"
|
||||
android:paddingStart="@dimen/dp_9"
|
||||
android:paddingEnd="@dimen/dp_9"
|
||||
app:layout_constraintBottom_toTopOf="@+id/lottery_buttons_layout"
|
||||
app:layout_constraintEnd_toEndOf="@+id/lottery_buttons_layout"
|
||||
app:layout_constraintStart_toStartOf="@+id/lottery_buttons_layout"
|
||||
>
|
||||
app:layout_constraintStart_toStartOf="@+id/lottery_buttons_layout">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_icon"
|
||||
@@ -349,9 +349,9 @@
|
||||
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" />
|
||||
android:textSize="@dimen/sp_10"
|
||||
tools:text="66666" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_dh"
|
||||
@@ -364,7 +364,6 @@
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/lottery_buttons_layout"
|
||||
android:layout_width="0dp"
|
||||
@@ -401,8 +400,8 @@
|
||||
android:layout_marginBottom="@dimen/dp_5"
|
||||
android:drawableLeft="@mipmap/jinb"
|
||||
android:gravity="center"
|
||||
tools:text="10币一次"
|
||||
android:textSize="@dimen/sp_10" />
|
||||
android:textSize="@dimen/sp_10"
|
||||
tools:text="10币一次" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
@@ -432,8 +431,8 @@
|
||||
android:layout_marginBottom="@dimen/dp_5"
|
||||
android:drawableLeft="@mipmap/jinb"
|
||||
android:gravity="center"
|
||||
tools:text="100币一次"
|
||||
android:textSize="@dimen/sp_10" />
|
||||
android:textSize="@dimen/sp_10"
|
||||
tools:text="100币一次" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
@@ -461,8 +460,8 @@
|
||||
android:layout_marginBottom="@dimen/dp_5"
|
||||
android:drawableLeft="@mipmap/jinb"
|
||||
android:gravity="center"
|
||||
tools:text="1000币一次"
|
||||
android:textSize="@dimen/sp_10" />
|
||||
android:textSize="@dimen/sp_10"
|
||||
tools:text="1000币一次" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
@@ -35,4 +35,28 @@
|
||||
<attr name="decorationOffsetX" format="integer" />
|
||||
<attr name="decorationOffsetY" format="integer" />
|
||||
</declare-styleable>
|
||||
<declare-styleable name="QXMeetGiftView">
|
||||
<!-- 背景图片配置 -->
|
||||
<attr name="normalBg" format="reference" /> <!-- 正常状态背景 -->
|
||||
<attr name="lockBg" format="reference" /> <!-- 锁定状态背景 -->
|
||||
<attr name="giftLightBg" format="reference" /> <!-- 礼物光效背景 -->
|
||||
<attr name="priceBg" format="reference" /> <!-- 价格背景 -->
|
||||
<attr name="coinIcon" format="reference" /> <!-- 金币图标 -->
|
||||
|
||||
<!-- 文字样式配置 -->
|
||||
<attr name="giftNameColor" format="color" /> <!-- 礼物名称颜色 -->
|
||||
<attr name="coinTextColor" format="color" /> <!-- 金币文字颜色 -->
|
||||
<attr name="giftNameSize" format="dimension" /> <!-- 礼物名称字号 -->
|
||||
<attr name="coinTextSize" format="dimension" /> <!-- 金币文字字号 -->
|
||||
|
||||
<!-- 尺寸配置 -->
|
||||
<attr name="bgBottomMargin" format="dimension" /> <!-- 背景底部边距 -->
|
||||
<attr name="giftImageMargin" format="dimension" /> <!-- 礼物图片边距 -->
|
||||
<attr name="priceBgHeight" format="dimension" /> <!-- 价格背景高度 -->
|
||||
<attr name="priceBgBottomMargin" format="dimension" /> <!-- 价格背景底部边距 -->
|
||||
<attr name="lockGiftSize" format="dimension" /> <!-- 锁定状态礼物图片尺寸 -->
|
||||
|
||||
<!-- 动画配置 -->
|
||||
<attr name="rotateDuration" format="integer" /> <!-- 旋转动画时长(ms) -->
|
||||
</declare-styleable>
|
||||
</resources>
|
||||
@@ -574,23 +574,7 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
|
||||
Manifest.permission.ACCESS_FINE_LOCATION,
|
||||
// 如需后台使用GPS,添加此权限(Android 10+)
|
||||
Manifest.permission.ACCESS_BACKGROUND_LOCATION
|
||||
).explainReasonBeforeRequest()
|
||||
.onExplainRequestReason(new ExplainReasonCallback() {
|
||||
@Override
|
||||
public void onExplainReason(ExplainScope scope, List<String> deniedList) {
|
||||
String message = "需要GPS权限以获取您的精确位置,用于导航/定位功能";
|
||||
// 若包含后台权限,补充说明
|
||||
|
||||
scope.showRequestReasonDialog(deniedList, message, "确定", "取消");
|
||||
}
|
||||
})
|
||||
// 权限被永久拒绝时,引导至设置页面
|
||||
.onForwardToSettings(new ForwardToSettingsCallback() {
|
||||
@Override
|
||||
public void onForwardToSettings(ForwardScope scope, List<String> deniedList) {
|
||||
scope.showForwardToSettingsDialog(deniedList, "GPS权限被拒绝,无法使用定位功能,请去设置开启", "去设置", "取消");
|
||||
}
|
||||
})
|
||||
)
|
||||
// 权限请求结果回调
|
||||
.request(new RequestCallback() {
|
||||
@Override
|
||||
|
||||
@@ -1,258 +0,0 @@
|
||||
//package com.example.moduleroom.view;
|
||||
//import android.content.Context;
|
||||
//import android.graphics.drawable.Drawable;
|
||||
//import android.util.AttributeSet;
|
||||
//import android.view.View;
|
||||
//import android.view.animation.Animation;
|
||||
//import android.view.animation.RotateAnimation;
|
||||
//import android.widget.Button;
|
||||
//import android.widget.ImageView;
|
||||
//import android.widget.LinearLayout;
|
||||
//import android.widget.RelativeLayout;
|
||||
//import android.widget.TextView;
|
||||
//
|
||||
//import androidx.annotation.Nullable;
|
||||
//
|
||||
//import com.example.moduleroom.R;
|
||||
//
|
||||
//public class QXMeetGiftView extends RelativeLayout {
|
||||
//
|
||||
// private TextView giftNameLabel;
|
||||
// private ImageView giftPriceBgView;
|
||||
// private Button giftCoin;
|
||||
// private ImageView bgImageView;
|
||||
// private ImageView giftBgImageView;
|
||||
// private ImageView giftImageView;
|
||||
//
|
||||
// private boolean isLockGift;
|
||||
// private Object model; // 这里用 Object 代替 QXDrawGiftModel
|
||||
//
|
||||
// public QXMeetGiftView(Context context) {
|
||||
// super(context);
|
||||
// initSubviews(context);
|
||||
// }
|
||||
//
|
||||
// public QXMeetGiftView(Context context, @Nullable AttributeSet attrs) {
|
||||
// super(context, attrs);
|
||||
// initSubviews(context);
|
||||
// }
|
||||
//
|
||||
// public QXMeetGiftView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
|
||||
// super(context, attrs, defStyleAttr);
|
||||
// initSubviews(context);
|
||||
// }
|
||||
//
|
||||
// private void initSubviews(Context context) {
|
||||
// // 创建背景图片视图
|
||||
// bgImageView = new ImageView(context);
|
||||
// bgImageView.setScaleType(ImageView.ScaleType.FIT_XY);
|
||||
// bgImageView.setImageResource(R.drawable.ac_left_gift_bg);
|
||||
// LayoutParams bgParams = new LayoutParams(
|
||||
// LayoutParams.MATCH_PARENT,
|
||||
// LayoutParams.MATCH_PARENT
|
||||
// );
|
||||
// bgParams.addRule(ALIGN_PARENT_TOP);
|
||||
// bgParams.addRule(ALIGN_PARENT_LEFT);
|
||||
// bgParams.addRule(ALIGN_PARENT_RIGHT);
|
||||
// bgParams.bottomMargin = dpToPx(19); // 底部偏移-19
|
||||
// addView(bgImageView, bgParams);
|
||||
//
|
||||
// // 创建礼物背景光效视图
|
||||
// giftBgImageView = new ImageView(context);
|
||||
// giftBgImageView.setScaleType(ImageView.ScaleType.FIT_XY);
|
||||
// giftBgImageView.setImageResource(R.drawable.ac_lock_gift_light_bg);
|
||||
// giftBgImageView.setVisibility(View.GONE); // 初始隐藏
|
||||
// LayoutParams giftBgParams = new LayoutParams(
|
||||
// LayoutParams.MATCH_PARENT,
|
||||
// LayoutParams.MATCH_PARENT
|
||||
// );
|
||||
// giftBgParams.addRule(ALIGN_PARENT_TOP);
|
||||
// giftBgParams.addRule(ALIGN_PARENT_LEFT);
|
||||
// giftBgParams.addRule(ALIGN_PARENT_RIGHT);
|
||||
// giftBgParams.bottomMargin = dpToPx(19);
|
||||
// addView(giftBgImageView, giftBgParams);
|
||||
//
|
||||
// // 创建礼物图片视图
|
||||
// giftImageView = new ImageView(context);
|
||||
// giftImageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
|
||||
// LayoutParams giftImageParams = new LayoutParams(
|
||||
// LayoutParams.MATCH_PARENT,
|
||||
// LayoutParams.WRAP_CONTENT
|
||||
// );
|
||||
// giftImageParams.addRule(CENTER_IN_PARENT);
|
||||
// giftImageParams.setMargins(dpToPx(6), dpToPx(6), dpToPx(6), 0);
|
||||
// addView(giftImageView, giftImageParams);
|
||||
//
|
||||
// // 创建价格背景视图
|
||||
// giftPriceBgView = new ImageView(context);
|
||||
// giftPriceBgView.setImageResource(R.drawable.ac_meet_gift_name_bg);
|
||||
// LayoutParams priceBgParams = new LayoutParams(
|
||||
// LayoutParams.MATCH_PARENT,
|
||||
// dpToPx(15)
|
||||
// );
|
||||
// priceBgParams.addRule(ALIGN_PARENT_BOTTOM);
|
||||
// priceBgParams.bottomMargin = dpToPx(15); // 在名称标签上方
|
||||
// addView(giftPriceBgView, priceBgParams);
|
||||
//
|
||||
// // 创建金币按钮
|
||||
// giftCoin = new Button(context);
|
||||
// giftCoin.setTextColor(0xFFC7BF62);
|
||||
// // 设置按钮图标
|
||||
// Drawable coinDrawable = getResources().getDrawable(R.drawable.sky_item_coin);
|
||||
// coinDrawable.setBounds(0, 0, dpToPx(12), dpToPx(12));
|
||||
// giftCoin.setCompoundDrawables(coinDrawable, null, null, null);
|
||||
// giftCoin.setTextSize(10);
|
||||
// giftCoin.setBackgroundColor(0x00000000); // 透明背景
|
||||
// LayoutParams coinParams = new LayoutParams(
|
||||
// LayoutParams.WRAP_CONTENT,
|
||||
// LayoutParams.WRAP_CONTENT
|
||||
// );
|
||||
// coinParams.addRule(CENTER_IN_PARENT, TRUE);
|
||||
// addView(giftCoin, coinParams);
|
||||
//
|
||||
// // 创建礼物名称标签
|
||||
// giftNameLabel = new TextView(context);
|
||||
// giftNameLabel.setTextColor(0xFFFFFFFF);
|
||||
// giftNameLabel.setTextSize(12);
|
||||
// giftNameLabel.setGravity(android.view.Gravity.CENTER);
|
||||
// LayoutParams nameParams = new LayoutParams(
|
||||
// LayoutParams.MATCH_PARENT,
|
||||
// dpToPx(15)
|
||||
// );
|
||||
// nameParams.addRule(ALIGN_PARENT_BOTTOM);
|
||||
// addView(giftNameLabel, nameParams);
|
||||
//
|
||||
// // 调整视图层级
|
||||
// bringChildToFront(giftPriceBgView);
|
||||
// bringChildToFront(giftCoin);
|
||||
// }
|
||||
//
|
||||
// public void setIsLockGift(boolean isLockGift) {
|
||||
// this.isLockGift = isLockGift;
|
||||
//
|
||||
// // 设置背景图片
|
||||
// int bgResource = isLockGift ?
|
||||
// R.drawable.ac_lock_gift_bg : R.drawable.ac_meet_gift_name_bg;
|
||||
// bgImageView.setImageResource(bgResource);
|
||||
//
|
||||
// // 显示/隐藏光效背景
|
||||
// giftBgImageView.setVisibility(isLockGift ? View.VISIBLE : View.GONE);
|
||||
//
|
||||
// if (isLockGift) {
|
||||
// // 重新设置礼物图片的约束
|
||||
// LayoutParams params = (LayoutParams) giftImageView.getLayoutParams();
|
||||
// params.width = scaleWidth(62);
|
||||
// params.height = scaleWidth(62);
|
||||
// params.addRule(CENTER_IN_PARENT);
|
||||
// params.setMargins(0, 0, 0, 0);
|
||||
// giftImageView.setLayoutParams(params);
|
||||
// } else {
|
||||
// // 恢复原始约束
|
||||
// LayoutParams params = (LayoutParams) giftImageView.getLayoutParams();
|
||||
// params.width = LayoutParams.MATCH_PARENT;
|
||||
// params.height = LayoutParams.WRAP_CONTENT;
|
||||
// params.addRule(CENTER_IN_PARENT);
|
||||
// params.setMargins(dpToPx(6), dpToPx(6), dpToPx(6), 0);
|
||||
// giftImageView.setLayoutParams(params);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public void setModel(Object model) {
|
||||
// this.model = model;
|
||||
// // 这里需要根据您的 QXDrawGiftModel 类来实现具体逻辑
|
||||
// /*
|
||||
// if (model instanceof QXDrawGiftModel) {
|
||||
// QXDrawGiftModel giftModel = (QXDrawGiftModel) model;
|
||||
//
|
||||
// // 使用图片加载库加载图片
|
||||
// // Glide.with(getContext()).load(giftModel.getBaseImage()).into(giftImageView);
|
||||
//
|
||||
// giftNameLabel.setText(giftModel.getGiftName());
|
||||
// giftCoin.setText(giftModel.getGiftPrice());
|
||||
// }
|
||||
// */
|
||||
// }
|
||||
//
|
||||
// public void startAnimation() {
|
||||
// // 礼物图片顺时针旋转动画
|
||||
// RotateAnimation rotateAnimation = new RotateAnimation(
|
||||
// 0, 360, // 从 0 度旋转到 360 度
|
||||
// Animation.RELATIVE_TO_SELF, 0.5f,
|
||||
// Animation.RELATIVE_TO_SELF, 0.5f
|
||||
// );
|
||||
// rotateAnimation.setDuration(3000); // 3 秒
|
||||
// rotateAnimation.setRepeatCount(Animation.INFINITE);
|
||||
// rotateAnimation.setRepeatMode(Animation.RESTART);
|
||||
// rotateAnimation.setInterpolator(getContext(), android.R.anim.linear_interpolator);
|
||||
// giftImageView.startAnimation(rotateAnimation);
|
||||
//
|
||||
// // 光效背景逆时针旋转动画
|
||||
// RotateAnimation rotateAnimation1 = new RotateAnimation(
|
||||
// 0, -360, // 从 0 度旋转到 -360 度
|
||||
// Animation.RELATIVE_TO_SELF, 0.5f,
|
||||
// Animation.RELATIVE_TO_SELF, 0.5f
|
||||
// );
|
||||
// rotateAnimation1.setDuration(3000); // 3 秒
|
||||
// rotateAnimation1.setRepeatCount(Animation.INFINITE);
|
||||
// rotateAnimation1.setRepeatMode(Animation.RESTART);
|
||||
// rotateAnimation1.setInterpolator(getContext(), android.R.anim.linear_interpolator);
|
||||
// giftBgImageView.startAnimation(rotateAnimation1);
|
||||
// }
|
||||
//
|
||||
// public void resetAnimation() {
|
||||
// giftImageView.clearAnimation();
|
||||
// giftBgImageView.clearAnimation();
|
||||
// }
|
||||
//
|
||||
// public void stopAnimation() {
|
||||
// giftImageView.clearAnimation();
|
||||
// giftBgImageView.clearAnimation();
|
||||
// }
|
||||
//
|
||||
// // 辅助方法:dp 转 px
|
||||
// private int dpToPx(int dp) {
|
||||
// float density = getResources().getDisplayMetrics().density;
|
||||
// return Math.round(dp * density);
|
||||
// }
|
||||
//
|
||||
// // 缩放宽度方法(对应 ScaleWidth)
|
||||
// private int scaleWidth(int value) {
|
||||
// // 这里需要根据您的缩放逻辑实现
|
||||
// // 通常可以根据屏幕密度进行缩放
|
||||
// float scale = getResources().getDisplayMetrics().density;
|
||||
// return (int) (value * scale);
|
||||
// }
|
||||
//
|
||||
// // Getter 方法
|
||||
// public TextView getGiftNameLabel() {
|
||||
// return giftNameLabel;
|
||||
// }
|
||||
//
|
||||
// public ImageView getGiftPriceBgView() {
|
||||
// return giftPriceBgView;
|
||||
// }
|
||||
//
|
||||
// public Button getGiftCoin() {
|
||||
// return giftCoin;
|
||||
// }
|
||||
//
|
||||
// public ImageView getBgImageView() {
|
||||
// return bgImageView;
|
||||
// }
|
||||
//
|
||||
// public ImageView getGiftBgImageView() {
|
||||
// return giftBgImageView;
|
||||
// }
|
||||
//
|
||||
// public ImageView getGiftImageView() {
|
||||
// return giftImageView;
|
||||
// }
|
||||
//
|
||||
// public boolean isLockGift() {
|
||||
// return isLockGift;
|
||||
// }
|
||||
//
|
||||
// public Object getModel() {
|
||||
// return model;
|
||||
// }
|
||||
//}
|
||||
@@ -483,6 +483,9 @@
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
tools:visibility="visible" />
|
||||
<!--https://tmd.xscmmidi.site/data/avatar/head_pic.png-->
|
||||
|
||||
|
||||
|
||||
<com.xscm.moduleutil.widget.DropViewRoom
|
||||
android:id="@+id/xlh_rk"
|
||||
android:layout_width="wrap_content"
|
||||
|
||||
Reference in New Issue
Block a user