宝箱UI和动画
@@ -34,7 +34,6 @@
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 多媒体相关 -->
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 如果需要实时音视频通话模块,下面的权限也是必须的。否则,可以不加 -->
|
||||
<uses-permission android:name="android.permission.BLUETOOTH" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
|
||||
@@ -86,6 +85,7 @@
|
||||
android:resizeableActivity="true"
|
||||
android:theme="@style/MyMaterialTheme"
|
||||
android:usesCleartextTraffic="true"
|
||||
android:requestLegacyExternalStorage="true"
|
||||
tools:replace="android:name, android:allowBackup">
|
||||
<!-- 高德地图 begin -->
|
||||
<meta-data
|
||||
@@ -1192,6 +1192,8 @@
|
||||
android:label="一键登录"
|
||||
android:launchMode="singleTask"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity android:name=".ui.webview.DialogWebViewActivity"
|
||||
android:theme="@style/dialog_web_view_activity"/>
|
||||
|
||||
</application>
|
||||
|
||||
|
BIN
app/src/main/assets/svga/bubble_pack.svga
Normal file
BIN
app/src/main/assets/svga/bubble_tran_bg.svga
Normal file
@@ -9,6 +9,7 @@ import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import android.os.Looper;
|
||||
import android.text.TextUtils;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
@@ -28,6 +29,7 @@ import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.common.widget.CircleImageView;
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
||||
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
|
||||
import com.yizhuan.erban.ui.webview.DialogWebViewActivity;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil;
|
||||
import com.yizhuan.erban.utils.RegexUtil;
|
||||
import com.yizhuan.xchat_android_core.UriProvider;
|
||||
@@ -176,8 +178,8 @@ public class MicroViewAdapter extends BaseMicroViewAdapter {
|
||||
tvCharmValue.setText(GiftValueFormat.longToString(longValue));
|
||||
llCharmClick.setOnClickListener(v -> {
|
||||
if (info.mChatRoomMember != null) {
|
||||
CommonWebViewActivity.start(context,
|
||||
UriProvider.getPersonalCharismaRank() + "?uid=" + info.mChatRoomMember.getAccount());
|
||||
DialogWebViewActivity.start(context,
|
||||
UriProvider.getPersonalCharismaRank() + "?uid=" + info.mChatRoomMember.getAccount(),false);
|
||||
}
|
||||
});
|
||||
llCharmClick.setOnLongClickListener(v -> {
|
||||
|
@@ -3,20 +3,26 @@ package com.yizhuan.erban.avroom.fragment;
|
||||
import android.Manifest;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
|
||||
import androidx.lifecycle.ViewModelProviders;
|
||||
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.GradientDrawable;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.view.ViewStub;
|
||||
@@ -171,6 +177,7 @@ import com.yizhuan.xchat_android_core.user.UserModel;
|
||||
import com.yizhuan.xchat_android_core.user.bean.BaseInfo;
|
||||
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
|
||||
import com.yizhuan.xchat_android_core.utils.ActivityUtil;
|
||||
import com.yizhuan.xchat_android_core.utils.StringUtils;
|
||||
import com.yizhuan.xchat_android_core.utils.net.BeanObserver;
|
||||
import com.yizhuan.xchat_android_core.utils.net.DontWarnObserver;
|
||||
import com.yizhuan.xchat_android_core.utils.net.ErrorConsumer;
|
||||
@@ -1003,6 +1010,7 @@ public class HomePartyRoomFragment extends BaseMvpFragment<IHomePartyView, HomeP
|
||||
* 左上角的活动,比较特殊,并且能触发暴走倒计时
|
||||
*/
|
||||
private List<ActionDialogInfo> specialActivities = new ArrayList<>();
|
||||
|
||||
/**
|
||||
* 显示活动图标
|
||||
*/
|
||||
@@ -1184,7 +1192,7 @@ public class HomePartyRoomFragment extends BaseMvpFragment<IHomePartyView, HomeP
|
||||
microView.bindAdapter(new CpMicroViewAdapter(mContext));
|
||||
}
|
||||
|
||||
} else if (AvRoomDataManager.get().isOpenKTV()){
|
||||
} else if (AvRoomDataManager.get().isOpenKTV()) {
|
||||
if (!microType.equals(BaseMicroViewAdapter.MICRO_TYPE_KTV)) {
|
||||
microView.bindAdapter(new KtvMicroViewAdapter(mContext));
|
||||
}
|
||||
@@ -2260,7 +2268,7 @@ public class HomePartyRoomFragment extends BaseMvpFragment<IHomePartyView, HomeP
|
||||
if (roomInfo == null) return;
|
||||
if (roomInfo.isCloseScreen()) {
|
||||
getMvpPresenter().roomOperate(SuperAdminModel.OPEN_PUBLIC_SCREEN);
|
||||
}else {
|
||||
} else {
|
||||
getMvpPresenter().roomOperate(SuperAdminModel.CLOSE_PUBLIC_SCREEN);
|
||||
}
|
||||
AvRoomModel.get().closeScreen(roomInfo.getRoomId(),
|
||||
|
@@ -13,6 +13,8 @@ import android.net.http.SslError;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
|
||||
import androidx.annotation.LayoutRes;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
@@ -63,7 +65,7 @@ import io.reactivex.schedulers.Schedulers;
|
||||
*/
|
||||
public class CommonWebViewActivity extends BaseActivity implements ShareDialog.OnShareDialogItemClick {
|
||||
|
||||
private FrameLayout layoutTitleBar;
|
||||
protected FrameLayout layoutTitleBar;
|
||||
private WebView webView;
|
||||
private ProgressBar mProgressBar;
|
||||
private CommonWebViewActivity mActivity;
|
||||
@@ -146,7 +148,7 @@ public class CommonWebViewActivity extends BaseActivity implements ShareDialog.O
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_common_web_view);
|
||||
setContentView(getLayoutId());
|
||||
Intent intent = getIntent();
|
||||
url = intent.getStringExtra("url");
|
||||
mPosition = intent.getIntExtra(POSITION, 0) + 1;
|
||||
@@ -171,6 +173,10 @@ public class CommonWebViewActivity extends BaseActivity implements ShareDialog.O
|
||||
});
|
||||
EventBus.getDefault().register(this);
|
||||
}
|
||||
@LayoutRes
|
||||
protected int getLayoutId(){
|
||||
return R.layout.activity_common_web_view;
|
||||
}
|
||||
|
||||
private void setListener() {
|
||||
imgShare.setOnClickListener(v -> {
|
||||
|
@@ -0,0 +1,41 @@
|
||||
package com.yizhuan.erban.ui.webview;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
|
||||
import com.yizhuan.erban.R;
|
||||
|
||||
public class DialogWebViewActivity extends CommonWebViewActivity {
|
||||
|
||||
private boolean showTitleBar;
|
||||
|
||||
public static void start(Context context, String url) {
|
||||
start(context, url, true);
|
||||
}
|
||||
|
||||
public static void start(Context context, String url, boolean showTitleBar) {
|
||||
Intent intent = new Intent(context, DialogWebViewActivity.class);
|
||||
intent.putExtra("url", url);
|
||||
intent.putExtra("showTitleBar", showTitleBar);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, ScreenUtil.screenHeight / 3 * 2);
|
||||
getWindow().setGravity(Gravity.BOTTOM);
|
||||
showTitleBar = getIntent().getBooleanExtra("showTitleBar", true);
|
||||
if (!showTitleBar) layoutTitleBar.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
return R.layout.activity_dialog_web_view;
|
||||
}
|
||||
}
|
@@ -444,7 +444,7 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
|
||||
// 这个方法能让图片不失真
|
||||
ImageLoadUtils.laodUsrInfoAvatar(context, userInfo.getAvatar(), avatar);
|
||||
nick.setText(RegexUtil.getPrintableString(userInfo.getNick()));
|
||||
erbanId.setText("66号" + userInfo.getErbanNo());
|
||||
erbanId.setText("66号:" + userInfo.getErbanNo());
|
||||
ivGender.setImageResource(
|
||||
userInfo.getGender() == 1 ? R.drawable.ic_gender_male : R.drawable.ic_gender_female);
|
||||
|
||||
|
21
app/src/main/res/anim/anim_box_gitf_open.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<!-- <translate
|
||||
android:duration="5000"
|
||||
android:fromYDelta="50%p"
|
||||
android:fromXDelta="50%p"
|
||||
android:toYDelta="100%p"
|
||||
android:toXDelta="100%p"/>-->
|
||||
|
||||
<scale
|
||||
android:duration="300"
|
||||
android:fromXScale="1"
|
||||
android:fromYScale="1"
|
||||
android:pivotX="50%"
|
||||
android:repeatMode="reverse"
|
||||
android:pivotY="50%"
|
||||
android:repeatCount="-1"
|
||||
android:toXScale="1.5"
|
||||
android:toYScale="1.5" />
|
||||
|
||||
</set>
|
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<solid android:color="@color/black_transparent_20"/>
|
||||
<solid android:color="@color/white_transparent_20"/>
|
||||
|
||||
<corners android:bottomRightRadius="0dp"
|
||||
android:topRightRadius="0dp"
|
||||
android:bottomLeftRadius="13dp"
|
||||
android:topLeftRadius="13dp"/>
|
||||
<corners android:bottomRightRadius="13dp"
|
||||
android:topRightRadius="13dp"
|
||||
android:bottomLeftRadius="0dp"
|
||||
android:topLeftRadius="0dp"/>
|
||||
|
||||
</shape>
|
@@ -2,7 +2,7 @@
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item>
|
||||
<shape>
|
||||
<solid android:color="#f0f0f0" />
|
||||
<solid android:color="#ededed" />
|
||||
</shape>
|
||||
</item>
|
||||
<item android:bottom="1px">
|
||||
|
7
app/src/main/res/drawable/shape_white_top_10dp.xml
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/white"/>
|
||||
<corners android:topLeftRadius="@dimen/dp_10"
|
||||
android:topRightRadius="@dimen/dp_10"/>
|
||||
</shape>
|
83
app/src/main/res/layout/activity_dialog_web_view.xml
Normal file
@@ -0,0 +1,83 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/shape_white_top_10dp"
|
||||
android:orientation="vertical"
|
||||
android:paddingTop="10dp">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/layout_title_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="48dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_back"
|
||||
android:layout_width="45dp"
|
||||
android:layout_height="45dp"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/arrow_left" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_close"
|
||||
android:layout_width="45dp"
|
||||
android:layout_height="45dp"
|
||||
android:layout_gravity="center_vertical|start"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_webview_close" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_title"
|
||||
android:layout_width="200dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="18sp" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/img_share"
|
||||
android:layout_width="22dp"
|
||||
android:layout_height="22dp"
|
||||
android:layout_gravity="center_vertical|end"
|
||||
android:layout_marginEnd="15dp"
|
||||
android:src="@drawable/icon_title_share"
|
||||
android:visibility="gone" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_title_right"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical|end"
|
||||
android:layout_marginEnd="15dp"
|
||||
android:textColor="@color/text_tertiary"
|
||||
android:textSize="14sp"
|
||||
android:visibility="gone"
|
||||
tools:text="常见问题" />
|
||||
</FrameLayout>
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/progress_bar"
|
||||
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="2dp"
|
||||
android:max="100"
|
||||
android:progress="0"
|
||||
android:progressDrawable="@drawable/progress_drawable" />
|
||||
|
||||
<WebView
|
||||
android:id="@+id/webview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
</WebView>
|
||||
</LinearLayout>
|
@@ -17,6 +17,7 @@
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="40dp"
|
||||
android:visibility="gone"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
|
@@ -181,6 +181,27 @@
|
||||
<item name="android:backgroundDimEnabled">false</item>
|
||||
</style>
|
||||
|
||||
<style name="dialog_web_view_activity" parent="Theme.AppCompat.Dialog">
|
||||
<item name="android:windowFullscreen">true</item>
|
||||
<!--设置dialog的背景-->
|
||||
<item name="android:windowBackground">@android:color/transparent</item>
|
||||
<!--设置Dialog的windowFrame框为无-->
|
||||
<item name="android:windowFrame">@null</item>
|
||||
<!--设置无标题-->
|
||||
<item name="windowNoTitle">true</item>
|
||||
<!--是否浮现在activity之上-->
|
||||
<item name="android:windowIsFloating">true</item>
|
||||
<!--是否半透明-->
|
||||
<item name="android:windowIsTranslucent">true</item>
|
||||
<!--设置窗口内容不覆盖-->
|
||||
<item name="android:windowContentOverlay">@null</item>
|
||||
<!--设置动画,在这里使用让它继承系统的Animation.Dialog-->
|
||||
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
|
||||
<!--背景是否模糊显示-->
|
||||
<item name="android:backgroundDimEnabled">true</item>
|
||||
</style>
|
||||
|
||||
|
||||
<style name="FullScreenDialog" parent="@android:style/Theme.Dialog">
|
||||
<!--<item name="android:windowBackground">@drawable/filled_activity_bg</item>-->
|
||||
<item name="android:backgroundDimEnabled">false</item>
|
||||
|
@@ -54,7 +54,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="6dp"
|
||||
android:layout_marginEnd="9dp"
|
||||
android:text="房间榜>"
|
||||
android:text="房间榜"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="12dp" />
|
||||
|
||||
@@ -191,7 +191,6 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="24dp"
|
||||
android:layout_alignTop="@id/micro_view"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginTop="6dp"
|
||||
android:background="@drawable/bg_contribute_entrance"
|
||||
android:gravity="center"
|
||||
@@ -199,21 +198,21 @@
|
||||
android:orientation="horizontal"
|
||||
android:visibility="@{(ktvModel || roomInfo.type==5) ? View.GONE : View.VISIBLE}">
|
||||
|
||||
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="房间榜"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="12dp" />
|
||||
<ImageView
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_marginStart="2dp"
|
||||
android:src="@drawable/icon_contribute_left" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="6dp"
|
||||
android:layout_marginEnd="9dp"
|
||||
android:text="房间榜>"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="12dp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<ImageView
|
||||
|
@@ -117,7 +117,7 @@ public class MusicPlayerView extends FrameLayout implements View.OnClickListener
|
||||
ObjectAnimator objectAnimatorFlag = ObjectAnimator.ofFloat(
|
||||
musicFlagLayout,
|
||||
"translationX",
|
||||
UIUtil.dip2px(getContext(), -59 - 20),
|
||||
UIUtil.dip2px(getContext(), 59 + 20),
|
||||
0)
|
||||
.setDuration(150);
|
||||
objectAnimatorFlag.setInterpolator(new AccelerateDecelerateInterpolator());
|
||||
@@ -137,7 +137,7 @@ public class MusicPlayerView extends FrameLayout implements View.OnClickListener
|
||||
musicFlagLayout,
|
||||
"translationX",
|
||||
0,
|
||||
UIUtil.dip2px(getContext(), -59-20))
|
||||
UIUtil.dip2px(getContext(), 59 + 20))
|
||||
.setDuration(150);
|
||||
objectAnimator.setInterpolator(new AccelerateDecelerateInterpolator());
|
||||
objectAnimator.start();
|
||||
|
@@ -2,8 +2,8 @@
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<solid android:color="@color/black_transparent_20" />
|
||||
<solid android:color="@color/white_transparent_20" />
|
||||
<corners
|
||||
android:topRightRadius="12dp"
|
||||
android:bottomRightRadius="12dp" />
|
||||
android:topLeftRadius="12dp"
|
||||
android:bottomLeftRadius="12dp" />
|
||||
</shape>
|
@@ -8,29 +8,29 @@
|
||||
android:id="@+id/music_flag_layout"
|
||||
android:layout_width="70dp"
|
||||
android:layout_height="25dp"
|
||||
android:layout_gravity="end"
|
||||
android:layout_marginTop="6dp"
|
||||
android:background="@drawable/bg_room_music_player"
|
||||
tools:visibility="visible">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginEnd="14dp"
|
||||
android:lines="1"
|
||||
android:text="播放音乐"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="10sp" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/music_flag"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_gravity="end|center_vertical"
|
||||
android:layout_gravity="start|center_vertical"
|
||||
android:layout_marginEnd="2dp"
|
||||
android:src="@drawable/icon_music_flag" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="24dp"
|
||||
android:lines="1"
|
||||
android:text="播放音乐"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="10sp" />
|
||||
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
|
@@ -1,22 +1,39 @@
|
||||
package com.yizhuan.erban.treasure_box.activity;
|
||||
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.animation.ValueAnimator;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.drawable.AnimationDrawable;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.view.animation.AccelerateDecelerateInterpolator;
|
||||
import android.view.animation.Animation;
|
||||
import android.view.animation.AnimationUtils;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.bumptech.glide.request.target.SimpleTarget;
|
||||
import com.bumptech.glide.request.transition.Transition;
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
|
||||
import com.netease.nim.uikit.support.glide.GlideApp;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseBindingActivity;
|
||||
import com.yizhuan.erban.databinding.ActivityTreasureBoxBinding;
|
||||
import com.yizhuan.erban.treasure_box.service.OpenBoxService;
|
||||
import com.yizhuan.erban.treasure_box.widget.PrizeFactor;
|
||||
import com.yizhuan.erban.treasure_box.widget.dialog.BaseBindingDialog;
|
||||
import com.yizhuan.erban.treasure_box.widget.dialog.BoxMoreDialog;
|
||||
import com.yizhuan.erban.treasure_box.widget.dialog.BuyKeyDialog;
|
||||
import com.yizhuan.erban.treasure_box.widget.dialog.KeyDeficiencyDialog;
|
||||
import com.yizhuan.erban.ui.pay.ChargeActivity;
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil;
|
||||
import com.yizhuan.treasure_box.bean.PrizeInfo;
|
||||
import com.yizhuan.treasure_box.model.BoxModel;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
import com.yizhuan.xchat_android_core.exception.FailReasonException;
|
||||
@@ -31,6 +48,7 @@ import com.yizhuan.treasure_box.event.AutoOpenBoxEvent;
|
||||
import com.yizhuan.treasure_box.event.BoxBuyKeyEvent;
|
||||
import com.yizhuan.xchat_android_core.statistic.StatisticManager;
|
||||
import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol;
|
||||
import com.yizhuan.xchat_android_core.utils.StringUtils;
|
||||
import com.yizhuan.xchat_android_core.utils.net.BalanceNotEnoughExeption;
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
|
||||
import com.yizhuan.xchat_android_library.utils.FormatUtils;
|
||||
@@ -40,159 +58,130 @@ import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
@ActLayoutRes(R.layout.activity_treasure_box)
|
||||
public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBoxBinding> {
|
||||
public class TreasureBoxActivity extends BaseBindingDialog<ActivityTreasureBoxBinding> implements View.OnClickListener {
|
||||
private volatile double gold;
|
||||
private int price = 20;
|
||||
private ImageView ivBox;
|
||||
private Intent autoOpenBoxService;
|
||||
private volatile int keyNum;
|
||||
private AnimationDrawable eggAnim;
|
||||
private ArrayList<PrizeInfo> cacheList = new ArrayList<>();
|
||||
private Disposable disposable;
|
||||
|
||||
public TreasureBoxActivity(Context context) {
|
||||
super(context);
|
||||
width = WindowManager.LayoutParams.MATCH_PARENT;
|
||||
//这里用MATCH_PARENT 通知栏会变黑.......
|
||||
height = ScreenUtil.screenHeight;
|
||||
}
|
||||
|
||||
public static void start(Context context) {
|
||||
Intent starter = new Intent(context, TreasureBoxActivity.class);
|
||||
new TreasureBoxActivity(context).openDialog();
|
||||
/* Intent starter = new Intent(context, TreasureBoxActivity.class);
|
||||
//starter.putExtra();
|
||||
context.startActivity(starter);
|
||||
context.startActivity(starter);*/
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
||||
// requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
// getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT);
|
||||
// getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
||||
super.onCreate(savedInstanceState);
|
||||
getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT);
|
||||
subscribeEvent();
|
||||
}
|
||||
|
||||
ObjectAnimator objectAnimator;
|
||||
ObjectAnimator objectAnimator1;
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
@Override
|
||||
protected void init() {
|
||||
autoOpenBoxService = new Intent(this, OpenBoxService.class);
|
||||
mBinding.setClick(this);
|
||||
ivBox = mBinding.ivBox;
|
||||
OpenBoxService.isPublic = !OpenBoxService.isAutoOpenBox || OpenBoxService.isPublic;
|
||||
mBinding.cbNotShow.setChecked(!OpenBoxService.isPublic);
|
||||
mBinding.cbNotShow.setOnCheckedChangeListener((buttonView, isChecked) -> OpenBoxService.isPublic = !isChecked);
|
||||
|
||||
mBinding.rbAuto.setChecked(OpenBoxService.isAutoOpenBox);//如果正在自动砸,需要选中这个
|
||||
mBinding.rgCount.setOnCheckedChangeListener((group, checkedId) -> {
|
||||
if (checkedId != R.id.rb_auto && OpenBoxService.isAutoOpenBox) {//正在自动砸的时候点击除了自动砸以外的rb需要停止自动砸
|
||||
stopService(autoOpenBoxService);
|
||||
mBinding.ivOpen.setImageResource(R.drawable.auto_open_box_normal);
|
||||
mBinding.ivBox.setImageResource(R.drawable.box_close_normal);
|
||||
}
|
||||
});
|
||||
binding.setClick(this);
|
||||
ivBox = binding.ivBox;
|
||||
|
||||
objectAnimator = ObjectAnimator.ofFloat(binding.ivGiftAnim,
|
||||
"translationX", 0, ScreenUtil.screenWidth / 2f).setDuration(500);
|
||||
objectAnimator.setInterpolator(new AccelerateDecelerateInterpolator());
|
||||
objectAnimator1 = ObjectAnimator.ofFloat(binding.ivGiftAnim,
|
||||
"translationY", 0, ScreenUtil.screenHeight / 2f + 100).setDuration(500);
|
||||
objectAnimator1.setInterpolator(new AccelerateDecelerateInterpolator());
|
||||
BoxModel.get()
|
||||
.getKeyInfo()
|
||||
.compose(bindToLifecycle())
|
||||
.doOnError(throwable -> toast(throwable.getMessage()))
|
||||
//.compose(bindToLifecycle())
|
||||
.doOnError(throwable -> SingleToastUtil.showToast(throwable.getMessage()))
|
||||
.subscribe(keyInfo -> {
|
||||
changeKeyNum(keyInfo.getKeyNum());
|
||||
price = keyInfo.getKeyPrice();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
WalletInfo walletInfo = PayModel.get().getCurrentWalletInfo();
|
||||
if (walletInfo != null) gold = walletInfo.getGoldNum();
|
||||
mBinding.tvCoinCount.setText(FormatUtils.formatBigDecimal(gold));
|
||||
mBinding.ivOpen.setImageResource(OpenBoxService.isAutoOpenBox ? R.drawable.stop_open_box_normal : R.drawable.auto_open_box_normal);
|
||||
mBinding.randomLayout.start();
|
||||
binding.tvDiamondNum.setText(FormatUtils.formatBigDecimal(gold));
|
||||
binding.randomLayout.start();
|
||||
EventBus.getDefault().register(this);
|
||||
looperPrize();
|
||||
}
|
||||
|
||||
/* @Override
|
||||
@SuppressLint("CheckResult")
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
|
||||
}
|
||||
*/
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
case R.id.stv_buy:
|
||||
showBuyDialog();
|
||||
break;
|
||||
case R.id.stv_help:
|
||||
BoxHelpActivity.start(this, mBinding.getRoot().getHeight(), mBinding.getRoot().getWidth());
|
||||
/* case R.id.stv_help:
|
||||
BoxHelpActivity.start(this, binding.getRoot().getHeight(), binding.getRoot().getWidth());
|
||||
break;
|
||||
case R.id.stv_jackpot:
|
||||
BoxPrizeActivity.start(this, mBinding.getRoot().getHeight(), mBinding.getRoot().getWidth());
|
||||
break;
|
||||
case R.id.stv_recharge:
|
||||
ChargeActivity.start(this);
|
||||
BoxPrizeActivity.start(this, binding.getRoot().getHeight(), binding.getRoot().getWidth());
|
||||
break;
|
||||
case R.id.stv_record:
|
||||
BoxPrizeRecordActivity.start(this, mBinding.getRoot().getHeight(), mBinding.getRoot().getWidth());
|
||||
break;
|
||||
case R.id.ib_close:
|
||||
finish();
|
||||
BoxPrizeRecordActivity.start(this, binding.getRoot().getHeight(), binding.getRoot().getWidth());
|
||||
break;*/
|
||||
case R.id.iv_more:
|
||||
new BoxMoreDialog(context).openDialog();
|
||||
break;
|
||||
case R.id.iv_open:
|
||||
handleBoxClick();
|
||||
binding.svgaOpen.startAnimation();
|
||||
binding.ivOpen.setEnabled(false);
|
||||
ivBox.setImageResource(R.drawable.box_close_normal);
|
||||
openBox(StringUtils.toInt(binding.editNum.getText().toString()));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void handleBoxClick() {
|
||||
ivBox.setImageResource(R.drawable.box_close_normal);
|
||||
switch (mBinding.rgCount.getCheckedRadioButtonId()) {
|
||||
case R.id.rb_open_once:
|
||||
mBinding.ivOpen.setEnabled(false);
|
||||
openBox(1);
|
||||
break;
|
||||
case R.id.rb_open_ten:
|
||||
mBinding.ivOpen.setEnabled(false);
|
||||
openBox(10);
|
||||
break;
|
||||
case R.id.rb_open_hundred:
|
||||
mBinding.ivOpen.setEnabled(false);
|
||||
openBox(100);
|
||||
break;
|
||||
case R.id.rb_auto:
|
||||
if (OpenBoxService.isAutoOpenBox) {
|
||||
stopService(autoOpenBoxService);
|
||||
mBinding.ivOpen.setImageResource(R.drawable.auto_open_box_normal);
|
||||
mBinding.ivBox.setImageResource(R.drawable.box_close_normal);
|
||||
} else {
|
||||
if (keyNum == 0) {
|
||||
SingleToastUtil.showToast("请先购买锤子");
|
||||
break;
|
||||
}
|
||||
startService(autoOpenBoxService);
|
||||
mBinding.ivOpen.setImageResource(R.drawable.stop_open_box_normal);
|
||||
mBinding.ivBox.setImageResource(R.drawable.egg6);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void showBuyDialog() {
|
||||
new BuyKeyDialog(this, price).show();
|
||||
new BuyKeyDialog(getContext(), price).show();
|
||||
}
|
||||
|
||||
@Override
|
||||
/* @Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
mBinding.randomLayout.stop();
|
||||
EventBus.getDefault().unregister(this);
|
||||
binding.randomLayout.stop();
|
||||
}
|
||||
*/
|
||||
|
||||
/**
|
||||
* 检查钥匙(锤子)数量
|
||||
*
|
||||
* @param count 想要使用的数量
|
||||
* @return true 表示数量不足,无法进行下一步操作
|
||||
* false 表示数量没问题,可以继续操作
|
||||
* false 表示数量没问题,可以继续操作
|
||||
*/
|
||||
private boolean checkKeyNum(int count) {
|
||||
if (keyNum == 0) {
|
||||
@@ -200,58 +189,77 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
||||
return true;
|
||||
}
|
||||
if (keyNum < count) {
|
||||
new KeyDeficiencyDialog(this, count, count - keyNum).show();
|
||||
new KeyDeficiencyDialog(getContext(), count, count - keyNum).show();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private Runnable runnableClose = () -> mBinding.ivBox.setImageResource(R.drawable.box_close_normal);
|
||||
private Runnable runnableClose = () -> binding.ivBox.setImageResource(R.drawable.box_close_normal);
|
||||
|
||||
private Runnable runnableOpen = () -> {
|
||||
if (eggAnim == null) {
|
||||
eggAnim = (AnimationDrawable) getResources().getDrawable(R.drawable.anim_egg);
|
||||
eggAnim = (AnimationDrawable) getContext().getResources().getDrawable(R.drawable.anim_egg);
|
||||
} else {
|
||||
eggAnim.stop();
|
||||
}
|
||||
mBinding.ivBox.setImageDrawable(eggAnim);
|
||||
binding.ivBox.setImageDrawable(eggAnim);
|
||||
eggAnim.start();
|
||||
};
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
private void openBox(int count) {
|
||||
if (checkKeyNum(count)) {
|
||||
mBinding.ivOpen.setEnabled(true);
|
||||
/* if (checkKeyNum(count)) {
|
||||
binding.ivOpen.setEnabled(true);
|
||||
return;
|
||||
}
|
||||
changeBoxStatus();
|
||||
}*/
|
||||
// changeBoxStatus();
|
||||
BoxModel.get()
|
||||
.openBox(count, !mBinding.cbNotShow.isChecked())
|
||||
.compose(bindToLifecycle())
|
||||
.delay(1, TimeUnit.SECONDS)
|
||||
.openBox(count, true)
|
||||
//.compose(bindToLifecycle())
|
||||
//.delay(1, TimeUnit.SECONDS)
|
||||
//delay后让转回主线程,不然刷新view会有问题
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.doOnError(throwable -> {
|
||||
mBinding.ivOpen.setEnabled(true);
|
||||
binding.ivOpen.setEnabled(true);
|
||||
if (throwable instanceof FailReasonException) {
|
||||
FailReasonException failReasonException = (FailReasonException) throwable;
|
||||
switch (failReasonException.getCode()) {
|
||||
case BoxModel.ERROR_CODE_KEY_NUM_NOT_ENOUGH:
|
||||
break;
|
||||
|
||||
case BalanceNotEnoughExeption.code:
|
||||
break;
|
||||
}
|
||||
}
|
||||
toast(throwable.getMessage());
|
||||
SingleToastUtil.showToast(throwable.getMessage());
|
||||
})
|
||||
.subscribe(openBoxResult -> {
|
||||
mBinding.randomLayout.addPrize(openBoxResult.getPrizeItemList());
|
||||
//binding.svgaOpen.stopAnimation();
|
||||
//binding.randomLayout.addPrize(openBoxResult.getPrizeItemList());
|
||||
changeKeyNum(openBoxResult.getRemainKeyNum());
|
||||
mBinding.ivOpen.setEnabled(true);
|
||||
binding.ivOpen.setEnabled(true);
|
||||
cacheList.addAll(openBoxResult.getPrizeItemList());
|
||||
});
|
||||
}
|
||||
|
||||
private void looperPrize() {
|
||||
disposable = Observable.interval(0, 600, TimeUnit.MILLISECONDS)
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.filter(aLong -> cacheList.size() > 0)
|
||||
.subscribe(aLong -> {
|
||||
String url = cacheList.get(0).getPrizeImgUrl();
|
||||
if (cacheList.size() > 0) cacheList.remove(0);
|
||||
if (!TextUtils.isEmpty(url)) {
|
||||
objectAnimator.start();
|
||||
objectAnimator1.start();
|
||||
binding.svgaGiftBg.startAnimation();
|
||||
ImageLoadUtils.loadImage(context, url, binding.ivGiftAnim);
|
||||
}
|
||||
}
|
||||
, e -> looperPrize());//出错了继续looper......
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void changeBoxStatus() {
|
||||
ivBox.removeCallbacks(runnableClose);
|
||||
@@ -262,21 +270,23 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
||||
|
||||
/**
|
||||
* 更新钥匙(锤子)数量
|
||||
*
|
||||
* @param num
|
||||
*/
|
||||
private void changeKeyNum(int num) {
|
||||
keyNum = num;
|
||||
mBinding.tvResidueCount.setText(keyNum + "");
|
||||
binding.tvKeyNum.setText(keyNum + "");
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新钱包
|
||||
*
|
||||
* @param g
|
||||
*/
|
||||
private void setGold(double g) {
|
||||
gold = g;
|
||||
mBinding.tvCoinCount.setText(FormatUtils.formatBigDecimal(gold));
|
||||
binding.tvDiamondNum.setText(FormatUtils.formatBigDecimal(gold));
|
||||
PayModel.get().getCurrentWalletInfo().setGoldNum(g);
|
||||
}
|
||||
|
||||
@@ -284,12 +294,12 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
||||
public void handleAutoOpenBoxEvent(AutoOpenBoxEvent event) {
|
||||
if (event.isRunning()) {
|
||||
OpenBoxResult openBoxResult = event.getOpenBoxResult();
|
||||
mBinding.randomLayout.addPrize(openBoxResult.getPrizeItemList());
|
||||
binding.randomLayout.addPrize(openBoxResult.getPrizeItemList());
|
||||
changeKeyNum(openBoxResult.getRemainKeyNum());
|
||||
if (openBoxResult.getRemainKeyNum() == 0)
|
||||
mBinding.ivOpen.setImageResource(R.drawable.auto_open_box_normal);
|
||||
binding.ivOpen.setImageResource(R.drawable.auto_open_box_normal);
|
||||
} else {
|
||||
mBinding.ivOpen.setImageResource(R.drawable.auto_open_box_normal);
|
||||
binding.ivOpen.setImageResource(R.drawable.auto_open_box_normal);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -298,9 +308,6 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
||||
if (event.isSuccess()) {
|
||||
KeyInfo keyInfo = event.getKeyInfo();
|
||||
int goldNum = keyInfo.getGoldNum();
|
||||
// if (goldNum == gold) {//购买钥匙成功了如果本地数量与服务器返回的金币数量相等,本地扣除下....
|
||||
// goldNum = (int) (gold - (keyInfo.getKeyNum() - keyNum) * price);
|
||||
// }
|
||||
changeKeyNum(keyInfo.getKeyNum());
|
||||
setGold(goldNum);
|
||||
if (event.isKeyDeficiency()) {
|
||||
@@ -322,25 +329,27 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
|
||||
private void subscribeEvent() {
|
||||
//更新金币数量和被踢出房间退出
|
||||
IMNetEaseManager.get().getChatRoomEventObservable()
|
||||
.compose(bindToLifecycle())
|
||||
//.compose(bindToLifecycle())
|
||||
.subscribe(roomEvent -> {
|
||||
switch (roomEvent.getEvent()) {
|
||||
case RoomEvent.WALLET_UPDATE:
|
||||
setGold(roomEvent.getWalletInfo().getGoldNum());
|
||||
break;
|
||||
case RoomEvent.KICK_OUT_ROOM:
|
||||
finish();
|
||||
closeDialog();
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
mBinding.randomLayout.stop();
|
||||
public void onDetachedFromWindow() {
|
||||
super.onDetachedFromWindow();
|
||||
EventBus.getDefault().unregister(this);
|
||||
binding.randomLayout.stop();
|
||||
ivBox.removeCallbacks(runnableOpen);
|
||||
ivBox.removeCallbacks(runnableClose);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@@ -15,6 +15,7 @@ import com.yizhuan.erban.base.BaseBindingActivity;
|
||||
import com.yizhuan.erban.databinding.ActivityTreasureBoxHonourBinding;
|
||||
import com.yizhuan.erban.treasure_box.service.OpenBoxService;
|
||||
import com.yizhuan.erban.treasure_box.service.OpenHonourBoxService;
|
||||
import com.yizhuan.erban.treasure_box.widget.dialog.BoxMoreDialog;
|
||||
import com.yizhuan.erban.treasure_box.widget.dialog.BuyKeyDialog;
|
||||
import com.yizhuan.erban.treasure_box.widget.dialog.KeyDeficiencyDialog;
|
||||
import com.yizhuan.erban.ui.pay.ChargeActivity;
|
||||
@@ -35,6 +36,7 @@ import com.yizhuan.xchat_android_core.pay.bean.WalletInfo;
|
||||
import com.yizhuan.treasure_box.event.AutoOpenBoxEvent;
|
||||
import com.yizhuan.xchat_android_core.statistic.StatisticManager;
|
||||
import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol;
|
||||
import com.yizhuan.xchat_android_core.utils.StringUtils;
|
||||
import com.yizhuan.xchat_android_core.utils.net.BalanceNotEnoughExeption;
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
|
||||
import com.yizhuan.xchat_android_library.utils.FormatUtils;
|
||||
@@ -55,7 +57,6 @@ public class TreasureBoxHonourActivity extends BaseBindingActivity<ActivityTreas
|
||||
private volatile double gold;
|
||||
private int price = 20;
|
||||
private ImageView ivBox;
|
||||
private Intent autoOpenBoxService;
|
||||
private volatile int keyNum;
|
||||
private AnimationDrawable eggAnim;
|
||||
|
||||
@@ -75,25 +76,16 @@ public class TreasureBoxHonourActivity extends BaseBindingActivity<ActivityTreas
|
||||
subscribeEvent();
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
@Override
|
||||
protected void init() {
|
||||
autoOpenBoxService = new Intent(this, OpenHonourBoxService.class);
|
||||
mBinding.setClick(this);
|
||||
ivBox = mBinding.ivBox;
|
||||
OpenHonourBoxService.isPublic = !OpenHonourBoxService.isAutoOpenBox || OpenHonourBoxService.isPublic;
|
||||
mBinding.cbNotShow.setChecked(!OpenHonourBoxService.isPublic);
|
||||
mBinding.cbNotShow.setOnCheckedChangeListener((buttonView, isChecked) -> OpenHonourBoxService.isPublic = !isChecked);
|
||||
|
||||
mBinding.rbAuto.setChecked(OpenHonourBoxService.isAutoOpenBox);//如果正在自动砸,需要选中这个
|
||||
mBinding.rgCount.setOnCheckedChangeListener((group, checkedId) -> {
|
||||
if (checkedId != R.id.rb_auto && OpenHonourBoxService.isAutoOpenBox) {//正在自动砸的时候点击除了自动砸以外的rb需要停止自动砸
|
||||
stopService(autoOpenBoxService);
|
||||
mBinding.ivOpen.setImageResource(R.drawable.auto_open_box);
|
||||
mBinding.ivBox.setImageResource(R.drawable.box_close);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
BoxModel.get()
|
||||
.getHonourKeyInfo(AuthModel.get().getCurrentUid())
|
||||
.compose(bindToLifecycle())
|
||||
@@ -102,15 +94,9 @@ public class TreasureBoxHonourActivity extends BaseBindingActivity<ActivityTreas
|
||||
changeKeyNum(keyInfo.getKeyNum());
|
||||
price = keyInfo.getKeyPrice();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
WalletInfo walletInfo = PayModel.get().getCurrentWalletInfo();
|
||||
if (walletInfo != null) gold = walletInfo.getGoldNum();
|
||||
mBinding.tvCoinCount.setText(FormatUtils.formatBigDecimal(gold));
|
||||
mBinding.tvDiamondNum.setText(FormatUtils.formatBigDecimal(gold));
|
||||
mBinding.ivOpen.setImageResource(OpenHonourBoxService.isAutoOpenBox ? R.drawable.stop_open_box : R.drawable.auto_open_box);
|
||||
mBinding.randomLayout.start();
|
||||
EventBus.getDefault().register(this);
|
||||
@@ -119,68 +105,22 @@ public class TreasureBoxHonourActivity extends BaseBindingActivity<ActivityTreas
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
case R.id.stv_buy:
|
||||
showBuyDialog();
|
||||
break;
|
||||
case R.id.stv_help:
|
||||
HonourBoxHelpActivity.start(this, mBinding.getRoot().getHeight(), mBinding.getRoot().getWidth());
|
||||
break;
|
||||
case R.id.stv_jackpot:
|
||||
HonourBoxPrizeActivity.start(this, mBinding.getRoot().getHeight(), mBinding.getRoot().getWidth());
|
||||
break;
|
||||
case R.id.stv_recharge:
|
||||
ChargeActivity.start(this);
|
||||
break;
|
||||
case R.id.stv_record:
|
||||
HonourBoxPrizeRecordActivity.start(this, mBinding.getRoot().getHeight(), mBinding.getRoot().getWidth());
|
||||
break;
|
||||
case R.id.ib_close:
|
||||
finish();
|
||||
break;
|
||||
case R.id.iv_open:
|
||||
handleBoxClick();
|
||||
mBinding.ivOpen.setEnabled(false);
|
||||
ivBox.setImageResource(R.drawable.box_close_normal);
|
||||
openBox(StringUtils.toInt(mBinding.editNum.getText().toString()));
|
||||
break;
|
||||
case R.id.iv_more:
|
||||
new BoxMoreDialog(context).openDialog();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void handleBoxClick() {
|
||||
ivBox.setImageResource(R.drawable.box_close);
|
||||
switch (mBinding.rgCount.getCheckedRadioButtonId()) {
|
||||
case R.id.rb_open_once:
|
||||
mBinding.ivOpen.setEnabled(false);
|
||||
openBox(1);
|
||||
break;
|
||||
case R.id.rb_open_ten:
|
||||
mBinding.ivOpen.setEnabled(false);
|
||||
openBox(10);
|
||||
break;
|
||||
case R.id.rb_open_hundred:
|
||||
mBinding.ivOpen.setEnabled(false);
|
||||
openBox(100);
|
||||
break;
|
||||
case R.id.rb_auto:
|
||||
if (OpenHonourBoxService.isAutoOpenBox) {
|
||||
stopService(autoOpenBoxService);
|
||||
mBinding.ivOpen.setImageResource(R.drawable.auto_open_box);
|
||||
mBinding.ivBox.setImageResource(R.drawable.box_close);
|
||||
} else {
|
||||
if (keyNum == 0) {
|
||||
SingleToastUtil.showToast("请先购买锤子");
|
||||
break;
|
||||
}
|
||||
startService(autoOpenBoxService);
|
||||
mBinding.ivOpen.setImageResource(R.drawable.stop_open_box);
|
||||
mBinding.ivBox.setImageResource(R.drawable.honour_egg6);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void showBuyDialog() {
|
||||
new BuyKeyDialog(this, price, IBoxModel.BOX_TYPE_HONOUR).show();
|
||||
}
|
||||
@@ -194,9 +134,10 @@ public class TreasureBoxHonourActivity extends BaseBindingActivity<ActivityTreas
|
||||
|
||||
/**
|
||||
* 检查钥匙(锤子)数量
|
||||
*
|
||||
* @param count 想要使用的数量
|
||||
* @return true 表示数量不足,无法进行下一步操作
|
||||
* false 表示数量没问题,可以继续操作
|
||||
* false 表示数量没问题,可以继续操作
|
||||
*/
|
||||
private boolean checkKeyNum(int count) {
|
||||
if (keyNum == 0) {
|
||||
@@ -230,7 +171,7 @@ public class TreasureBoxHonourActivity extends BaseBindingActivity<ActivityTreas
|
||||
}
|
||||
changeBoxStatus();
|
||||
BoxModel.get()
|
||||
.openHonourBox(AuthModel.get().getCurrentUid(), !mBinding.cbNotShow.isChecked(),
|
||||
.openHonourBox(AuthModel.get().getCurrentUid(), false,
|
||||
AvRoomDataManager.get().mCurrentRoomInfo.getUid(), count,
|
||||
AuthModel.get().getTicket())
|
||||
.compose(bindToLifecycle())
|
||||
@@ -268,21 +209,23 @@ public class TreasureBoxHonourActivity extends BaseBindingActivity<ActivityTreas
|
||||
|
||||
/**
|
||||
* 更新钥匙(锤子)数量
|
||||
*
|
||||
* @param num
|
||||
*/
|
||||
private void changeKeyNum(int num) {
|
||||
keyNum = num;
|
||||
mBinding.tvResidueCount.setText(keyNum + "");
|
||||
mBinding.tvKeyNum.setText(keyNum + "");
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新钱包
|
||||
*
|
||||
* @param g
|
||||
*/
|
||||
private void setGold(double g) {
|
||||
gold = g;
|
||||
mBinding.tvCoinCount.setText(FormatUtils.formatBigDecimal(gold));
|
||||
mBinding.tvDiamondNum.setText(FormatUtils.formatBigDecimal(gold));
|
||||
PayModel.get().getCurrentWalletInfo().setGoldNum(g);
|
||||
}
|
||||
|
||||
@@ -304,9 +247,6 @@ public class TreasureBoxHonourActivity extends BaseBindingActivity<ActivityTreas
|
||||
if (event.isSuccess()) {
|
||||
HonourBuyKeyResultInfo keyInfo = event.getKeyInfo();
|
||||
int goldNum = keyInfo.getGoldNum();
|
||||
// if (goldNum == gold) {//购买钥匙成功了如果本地数量与服务器返回的金币数量相等,本地扣除下....
|
||||
// goldNum = (int) (gold - (keyInfo.getKeyNum() - keyNum) * price);
|
||||
// }
|
||||
changeKeyNum(keyInfo.getKeyNum());
|
||||
setGold(goldNum);
|
||||
if (event.isKeyDeficiency()) {
|
||||
|
@@ -2,9 +2,12 @@ package com.yizhuan.erban.treasure_box.fragment;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.Gravity;
|
||||
@@ -27,8 +30,8 @@ import io.reactivex.disposables.Disposable;
|
||||
|
||||
public class ChooseTreasureBoxDialogFragment extends DialogFragment implements View.OnClickListener {
|
||||
|
||||
private TextView normalBoxButton, honourBoxButton, honourLimitTip;
|
||||
private ImageView normalBoxImage, honourBoxImage;
|
||||
private TextView honourLimitTip;
|
||||
private ConstraintLayout clBoxNormal, clBoxHonour;
|
||||
|
||||
private OnTreasureBoxChooseListener onTreasureBoxChooseListener;
|
||||
|
||||
@@ -46,17 +49,13 @@ public class ChooseTreasureBoxDialogFragment extends DialogFragment implements V
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
normalBoxButton = view.findViewById(R.id.tv_select_normal_box);
|
||||
honourBoxButton = view.findViewById(R.id.tv_select_honour_box);
|
||||
clBoxNormal = view.findViewById(R.id.cl_box_normal);
|
||||
clBoxHonour = view.findViewById(R.id.cl_box_honour);
|
||||
honourLimitTip = view.findViewById(R.id.tv_honour_box_limit);
|
||||
normalBoxImage = view.findViewById(R.id.iv_select_normal_box);
|
||||
honourBoxImage = view.findViewById(R.id.iv_select_honour_box);
|
||||
|
||||
view.findViewById(R.id.iv_close).setOnClickListener(this);
|
||||
normalBoxButton.setOnClickListener(this);
|
||||
honourBoxButton.setOnClickListener(this);
|
||||
normalBoxImage.setOnClickListener(this);
|
||||
honourBoxImage.setOnClickListener(this);
|
||||
clBoxNormal.setOnClickListener(this);
|
||||
clBoxHonour.setOnClickListener(this);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -84,23 +83,20 @@ public class ChooseTreasureBoxDialogFragment extends DialogFragment implements V
|
||||
@Override
|
||||
public void onSuccess(BoxOpenStatusInfo boxOpenStatusInfo) {
|
||||
if (boxOpenStatusInfo != null) {
|
||||
honourBoxButton.setEnabled(boxOpenStatusInfo.isOpening());
|
||||
honourBoxImage.setEnabled(boxOpenStatusInfo.isOpening());
|
||||
clBoxHonour.setEnabled(boxOpenStatusInfo.isOpening());
|
||||
String startTime = TextUtils.isEmpty(boxOpenStatusInfo.getStartTime()) ? "" : boxOpenStatusInfo.getStartTime();
|
||||
String endTime = TextUtils.isEmpty(boxOpenStatusInfo.getEndTime()) ? "" : boxOpenStatusInfo.getEndTime();
|
||||
honourLimitTip.setText(String.format("限时:%s - %s", startTime, endTime));
|
||||
} else {
|
||||
honourBoxButton.setEnabled(false);
|
||||
honourBoxImage.setEnabled(false);
|
||||
honourLimitTip.setText("");
|
||||
clBoxHonour.setEnabled(false);
|
||||
honourLimitTip.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
honourBoxButton.setEnabled(false);
|
||||
honourBoxImage.setEnabled(false);
|
||||
honourLimitTip.setText("");
|
||||
clBoxHonour.setEnabled(false);
|
||||
honourLimitTip.setVisibility(View.GONE);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -110,21 +106,21 @@ public class ChooseTreasureBoxDialogFragment extends DialogFragment implements V
|
||||
int id = view.getId();
|
||||
if (id == R.id.iv_close) {
|
||||
dismiss();
|
||||
} else if (id == R.id.iv_select_normal_box || id == R.id.tv_select_normal_box) {
|
||||
} else if (id == R.id.cl_box_normal) {
|
||||
if (onTreasureBoxChooseListener != null) {
|
||||
if (AvRoomDataManager.get().isCpRoom()) {
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_CP_ROOM_SMASHEGG_CHOOSE, "开始砸金蛋-陪伴房");
|
||||
}else {
|
||||
} else {
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_MP_ROOM_SMASHEGG_CHOOSE, "开始砸金蛋-多人房");
|
||||
}
|
||||
onTreasureBoxChooseListener.onBoxClick(0);
|
||||
}
|
||||
dismiss();
|
||||
} else if (id == R.id.iv_select_honour_box || id == R.id.tv_select_honour_box) {
|
||||
} else if (id == R.id.cl_box_honour) {
|
||||
if (onTreasureBoxChooseListener != null) {
|
||||
if (AvRoomDataManager.get().isCpRoom()) {
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_CP_ROOM_SMASHEGG_CHOOSE, "开始砸至尊蛋-陪伴房");
|
||||
}else {
|
||||
} else {
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_MP_ROOM_SMASHEGG_CHOOSE, "开始砸至尊蛋-多人房");
|
||||
}
|
||||
onTreasureBoxChooseListener.onBoxClick(1);
|
||||
|
@@ -23,7 +23,7 @@ import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
|
||||
public abstract class BaseBindingDialog<T extends ViewDataBinding> extends AppCompatDialog {
|
||||
|
||||
|
||||
private int width, height;
|
||||
protected int width, height;
|
||||
protected Context context;
|
||||
|
||||
public BaseBindingDialog(Context context) {
|
||||
|
@@ -0,0 +1,45 @@
|
||||
package com.yizhuan.erban.treasure_box.widget.dialog;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.Gravity;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.databinding.DialogBoxMoreBinding;
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
|
||||
|
||||
@ActLayoutRes(R.layout.dialog_box_more)
|
||||
public class BoxMoreDialog extends BaseBindingDialog<DialogBoxMoreBinding> {
|
||||
|
||||
|
||||
public BoxMoreDialog(Context context) {
|
||||
super(context);
|
||||
width = WindowManager.LayoutParams.MATCH_PARENT;
|
||||
height = WindowManager.LayoutParams.WRAP_CONTENT;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStart() {
|
||||
super.onStart();
|
||||
Window window = getWindow();
|
||||
if (window != null) {
|
||||
WindowManager.LayoutParams windowParams = window.getAttributes();
|
||||
windowParams.gravity = Gravity.BOTTOM;
|
||||
window.setAttributes(windowParams);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void init() {
|
||||
binding.tvHistory.setOnClickListener(v -> {
|
||||
closeDialog();
|
||||
});
|
||||
binding.tvBoxRule.setOnClickListener(v -> {
|
||||
closeDialog();
|
||||
});
|
||||
binding.tvGetKey.setOnClickListener(v -> {
|
||||
closeDialog();
|
||||
});
|
||||
}
|
||||
}
|
BIN
app/src/module_treasure_box/res/drawable-xhdpi/auto_open_box.png
Normal file
After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 9.1 KiB |
After Width: | Height: | Size: 7.5 KiB |
@@ -13,289 +13,211 @@
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/root_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/dp_15"
|
||||
android:layout_marginStart="@dimen/dp_15"
|
||||
android:background="@drawable/treasure_box_bg_normal">
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/ib_close"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@null"
|
||||
android:onClick="@{click}"
|
||||
android:padding="@dimen/dp_9"
|
||||
android:src="@drawable/icon_room_close_box"
|
||||
app:layout_constraintRight_toRightOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/stv_record"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_9"
|
||||
android:layout_marginTop="60dp"
|
||||
android:gravity="center"
|
||||
android:onClick="@{click}"
|
||||
android:src="@drawable/icon_win_price_record_normal"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
<View
|
||||
android:id="@+id/view_bg"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="387dp"
|
||||
android:layout_marginStart="@dimen/dp_30"
|
||||
android:layout_marginTop="17dp"
|
||||
android:layout_marginEnd="@dimen/dp_30"
|
||||
android:background="@drawable/treasure_box_bg_normal"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/stv_jackpot"
|
||||
android:id="@+id/iv_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_9"
|
||||
android:src="@drawable/treasure_box_title_normal"
|
||||
app:layout_constraintBottom_toTopOf="@id/view_bg"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/view_bg" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_rank"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginTop="15dp"
|
||||
android:drawableStart="@drawable/treasure_box_rank"
|
||||
android:drawablePadding="5dp"
|
||||
android:gravity="center"
|
||||
android:onClick="@{click}"
|
||||
android:src="@drawable/icon_jackpot_normal"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintLeft_toLeftOf="@id/stv_record"
|
||||
app:layout_constraintTop_toBottomOf="@id/stv_record" />
|
||||
android:text="排行榜"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="13sp"
|
||||
app:layout_constraintStart_toStartOf="@id/view_bg"
|
||||
app:layout_constraintTop_toTopOf="@id/view_bg" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/stv_help"
|
||||
android:id="@+id/iv_more"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="15dp"
|
||||
android:layout_marginEnd="15dp"
|
||||
android:gravity="center"
|
||||
android:onClick="@{click}"
|
||||
android:padding="@dimen/dp_9"
|
||||
android:src="@drawable/icon_room_box_help_normal"
|
||||
android:src="@drawable/icon_room_box_more_normal"
|
||||
android:text="帮助"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/stv_jackpot" />
|
||||
app:layout_constraintEnd_toEndOf="@id/view_bg"
|
||||
app:layout_constraintTop_toTopOf="@id/view_bg" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_box_bottom"
|
||||
android:layout_width="183dp"
|
||||
android:layout_height="90dp"
|
||||
android:layout_marginTop="120dp"
|
||||
android:src="@drawable/box_bottom_normal"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
<TextView
|
||||
android:id="@+id/tv_diamond_num"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="18dp"
|
||||
android:drawableTop="@drawable/treasure_box_diamond"
|
||||
android:gravity="center"
|
||||
android:text="200"
|
||||
android:textColor="#ffffffff"
|
||||
android:textSize="11sp"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_more"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_more"
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_more" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_key_num"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:drawableTop="@drawable/treasure_box_meteor"
|
||||
android:gravity="center"
|
||||
android:text="200"
|
||||
android:textColor="#ffffffff"
|
||||
android:textSize="11sp"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_more"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_more"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_diamond_num" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_box"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="200dp"
|
||||
android:layout_height="200dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="30dp"
|
||||
android:layout_marginTop="45dp"
|
||||
android:onClick="@{click}"
|
||||
android:src="@drawable/box_close_normal"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<com.yizhuan.erban.treasure_box.widget.PrizeCover
|
||||
android:id="@+id/random_layout"
|
||||
android:layout_width="200dp"
|
||||
android:layout_height="175dp"
|
||||
android:layout_marginTop="10dp"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:visibility="invisible" />
|
||||
|
||||
<RadioGroup
|
||||
android:id="@+id/rg_count"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="25dp"
|
||||
android:layout_marginTop="35dp"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_box_bottom">
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rb_open_once"
|
||||
android:layout_width="55dp"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/selector_treasure_box__normal_rb"
|
||||
android:button="@null"
|
||||
android:checked="true"
|
||||
android:gravity="center"
|
||||
android:text="1次"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_12" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rb_open_ten"
|
||||
android:layout_width="55dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:background="@drawable/selector_treasure_box__normal_rb"
|
||||
android:button="@null"
|
||||
android:gravity="center"
|
||||
android:text="10次"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_12" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rb_open_hundred"
|
||||
android:layout_width="55dp"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/selector_treasure_box__normal_rb"
|
||||
android:button="@null"
|
||||
android:gravity="center"
|
||||
android:text="100次"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_12" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rb_auto"
|
||||
android:layout_width="55dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="@dimen/dp_10"
|
||||
android:background="@drawable/selector_treasure_box__normal_rb"
|
||||
android:button="@null"
|
||||
android:gravity="center"
|
||||
android:text="自动砸"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_12" />
|
||||
</RadioGroup>
|
||||
|
||||
<androidx.constraintlayout.widget.Placeholder
|
||||
android:id="@+id/place_holder"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginBottom="15dp"
|
||||
app:layout_constraintBottom_toTopOf="@id/rg_count" />
|
||||
app:layout_constraintTop_toTopOf="@id/view_bg" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_hammer"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="4dp"
|
||||
android:src="@drawable/icon_hammer_box_normal"
|
||||
app:layout_constraintBottom_toBottomOf="@id/place_holder"
|
||||
app:layout_constraintRight_toLeftOf="@+id/tv_residue"
|
||||
app:layout_constraintTop_toTopOf="@id/place_holder" />
|
||||
android:id="@+id/iv_gift_anim"
|
||||
android:layout_width="50dp"
|
||||
android:layout_height="50dp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/iv_box"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_box"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_box"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_box" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_residue"
|
||||
android:id="@+id/tv_continuous_open"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:drawablePadding="5dp"
|
||||
android:text="剩余锤子数:"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_14"
|
||||
app:layout_constraintBottom_toBottomOf="@id/place_holder"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintLeft_toRightOf="@+id/iv_hammer"
|
||||
app:layout_constraintRight_toLeftOf="@+id/tv_residue_count"
|
||||
app:layout_constraintTop_toTopOf="@id/place_holder" />
|
||||
android:layout_marginTop="7dp"
|
||||
android:text="连续开启"
|
||||
android:textColor="#fff15fc3"
|
||||
android:textSize="11sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_box" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_residue_count"
|
||||
<ImageView
|
||||
android:id="@+id/iv_sub"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/dp_20"
|
||||
android:layout_marginStart="@dimen/dp_5"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="0"
|
||||
android:textColor="@color/color_FF9251"
|
||||
android:textSize="15sp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/place_holder"
|
||||
app:layout_constraintLeft_toRightOf="@id/tv_residue"
|
||||
app:layout_constraintRight_toLeftOf="@+id/stv_buy"
|
||||
app:layout_constraintTop_toTopOf="@id/place_holder" />
|
||||
|
||||
<com.coorchice.library.SuperTextView
|
||||
android:id="@+id/stv_buy"
|
||||
android:layout_width="55dp"
|
||||
android:layout_height="25dp"
|
||||
android:gravity="center"
|
||||
android:layout_marginTop="10dp"
|
||||
android:onClick="@{click}"
|
||||
android:text="@string/buy"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_13"
|
||||
android:background="@drawable/icon_box_rb_true_normal"
|
||||
app:corner="12dp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/place_holder"
|
||||
app:layout_constraintLeft_toRightOf="@id/tv_residue_count"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/place_holder"
|
||||
app:stroke_color="@color/white"
|
||||
app:stroke_width="0dp" />
|
||||
android:src="@drawable/treasure_box_sub_normal"
|
||||
app:layout_constraintEnd_toStartOf="@id/edit_num"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_continuous_open" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/edit_num"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="23dp"
|
||||
android:background="@color/white_transparent_12"
|
||||
android:gravity="center"
|
||||
android:minWidth="40dp"
|
||||
android:text="1"
|
||||
android:textColor="#ffc33c98"
|
||||
android:textSize="13sp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/iv_sub"
|
||||
app:layout_constraintEnd_toStartOf="@id/iv_add"
|
||||
app:layout_constraintStart_toEndOf="@id/iv_sub"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_sub" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_add"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/treasure_box_add_normal"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/edit_num"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_sub" />
|
||||
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_open"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_16"
|
||||
android:layout_marginTop="15dp"
|
||||
android:layout_marginBottom="22dp"
|
||||
android:onClick="@{click}"
|
||||
android:src="@drawable/auto_open_box_normal"
|
||||
app:layout_constraintBottom_toBottomOf="@id/view_bg"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_sub" />
|
||||
|
||||
<com.yizhuan.erban.treasure_box.widget.PrizeCover
|
||||
android:id="@+id/random_layout"
|
||||
android:layout_width="200dp"
|
||||
android:layout_height="200dp"
|
||||
android:layout_marginTop="60dp"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/rg_count" />
|
||||
app:layout_constraintTop_toTopOf="@id/view_bg"
|
||||
tools:visibility="gone" />
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/cb_not_show"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="15dp"
|
||||
android:button="@null"
|
||||
android:drawableLeft="@drawable/selector_box_hint"
|
||||
android:drawablePadding="@dimen/dp_5"
|
||||
android:gravity="center"
|
||||
android:text="不对外提示中奖信息"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_12"
|
||||
<com.opensource.svgaplayer.SVGAImageView
|
||||
android:id="@+id/svga_open"
|
||||
android:layout_width="200dp"
|
||||
android:layout_height="200dp"
|
||||
android:layout_marginTop="60dp"
|
||||
app:autoPlay="false"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_open" />
|
||||
app:layout_constraintTop_toTopOf="@id/view_bg"
|
||||
app:loopCount="1"
|
||||
app:source="svga/bubble_pack.svga"
|
||||
tools:visibility="gone" />
|
||||
|
||||
<View
|
||||
android:id="@+id/bottom_bg_view"
|
||||
<com.opensource.svgaplayer.SVGAImageView
|
||||
android:id="@+id/svga_gift_bg"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="46dp"
|
||||
android:layout_marginTop="15dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/cb_not_show" />
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginStart="80dp"
|
||||
android:layout_marginTop="60dp"
|
||||
app:autoPlay="false"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_box"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_box"
|
||||
app:loopCount="1"
|
||||
app:source="svga/bubble_tran_bg.svga"
|
||||
tools:background="@color/white"
|
||||
tools:visibility="gone" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_coin"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_15"
|
||||
android:text="金币"
|
||||
android:textColor="@color/color_FF8D50"
|
||||
android:textSize="@dimen/sp_15"
|
||||
app:layout_constraintBottom_toBottomOf="@id/bottom_bg_view"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/bottom_bg_view" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_coin_count"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:text="0"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_20"
|
||||
app:layout_constraintBottom_toBottomOf="@id/bottom_bg_view"
|
||||
app:layout_constraintLeft_toRightOf="@id/tv_coin"
|
||||
app:layout_constraintTop_toTopOf="@id/bottom_bg_view" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/stv_recharge"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="22dp"
|
||||
android:background="@drawable/icon_box_charge_normal"
|
||||
android:gravity="center"
|
||||
android:onClick="@{click}"
|
||||
android:text="充值"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_16"
|
||||
app:layout_constraintBottom_toBottomOf="@id/bottom_bg_view"
|
||||
app:layout_constraintRight_toRightOf="@id/bottom_bg_view"
|
||||
app:layout_constraintTop_toTopOf="@id/bottom_bg_view" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</layout>
|
||||
|
@@ -12,289 +12,172 @@
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/root_view"
|
||||
android:layout_marginStart="@dimen/dp_15"
|
||||
android:layout_marginEnd="@dimen/dp_15"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/treasure_box_bg">
|
||||
android:layout_marginStart="@dimen/dp_15"
|
||||
android:layout_marginEnd="@dimen/dp_15">
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/ib_close"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@null"
|
||||
android:onClick="@{click}"
|
||||
android:src="@drawable/icon_room_close_box"
|
||||
android:padding="@dimen/dp_9"
|
||||
app:layout_constraintRight_toRightOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/stv_record"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="60dp"
|
||||
android:layout_marginStart="@dimen/dp_9"
|
||||
android:gravity="center"
|
||||
android:onClick="@{click}"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="12sp"
|
||||
android:src="@drawable/icon_win_price_record"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
<View
|
||||
android:id="@+id/view_bg"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginTop="17dp"
|
||||
android:background="@drawable/treasure_box_bg_normal"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/stv_jackpot"
|
||||
android:id="@+id/iv_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_9"
|
||||
android:src="@drawable/treasure_box_title"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_rank"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginTop="15dp"
|
||||
android:drawableStart="@drawable/treasure_box_rank"
|
||||
android:drawablePadding="5dp"
|
||||
android:gravity="center"
|
||||
android:onClick="@{click}"
|
||||
android:src="@drawable/icon_jackpot"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintLeft_toLeftOf="@id/stv_record"
|
||||
app:layout_constraintTop_toBottomOf="@id/stv_record" />
|
||||
android:text="排行榜"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="13sp"
|
||||
app:layout_constraintStart_toStartOf="@id/view_bg"
|
||||
app:layout_constraintTop_toTopOf="@id/view_bg" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/stv_help"
|
||||
android:id="@+id/iv_more"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="15dp"
|
||||
android:layout_marginEnd="15dp"
|
||||
android:gravity="center"
|
||||
android:onClick="@{click}"
|
||||
android:padding="@dimen/dp_9"
|
||||
android:gravity="center"
|
||||
android:onClick="@{click}"
|
||||
android:src="@drawable/icon_room_box_more_normal"
|
||||
android:text="帮助"
|
||||
android:src="@drawable/icon_room_box_help"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/stv_jackpot" />
|
||||
app:layout_constraintEnd_toEndOf="@id/view_bg"
|
||||
app:layout_constraintTop_toTopOf="@id/view_bg" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_diamond_num"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="18dp"
|
||||
android:drawableTop="@drawable/treasure_box_diamond"
|
||||
android:gravity="center"
|
||||
android:text="200"
|
||||
android:textColor="#ffffffff"
|
||||
android:textSize="11sp"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_more"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_more"
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_more" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_key_num"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:drawableTop="@drawable/treasure_box_meteor"
|
||||
android:gravity="center"
|
||||
android:text="200"
|
||||
android:textColor="#ffffffff"
|
||||
android:textSize="11sp"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_more"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_more"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_diamond_num" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_box_bottom"
|
||||
android:layout_width="183dp"
|
||||
android:layout_height="90dp"
|
||||
android:src="@drawable/box_bottom"
|
||||
android:layout_marginTop="120dp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_box"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="200dp"
|
||||
android:layout_height="200dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="30dp"
|
||||
android:layout_marginTop="60dp"
|
||||
android:onClick="@{click}"
|
||||
android:src="@drawable/box_close"
|
||||
android:src="@drawable/box_close_normal"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<com.yizhuan.erban.treasure_box.widget.PrizeCover
|
||||
android:id="@+id/random_layout"
|
||||
android:layout_width="200dp"
|
||||
android:layout_height="175dp"
|
||||
android:layout_marginTop="10dp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
tools:visibility="invisible" />
|
||||
|
||||
<RadioGroup
|
||||
android:id="@+id/rg_count"
|
||||
<TextView
|
||||
android:id="@+id/tv_continuous_open"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="25dp"
|
||||
android:layout_marginTop="35dp"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_box_bottom">
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rb_open_once"
|
||||
android:layout_width="55dp"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/selector_treasure_box_rb"
|
||||
android:button="@null"
|
||||
android:checked="true"
|
||||
android:gravity="center"
|
||||
android:text="1次"
|
||||
android:textSize="@dimen/sp_12"
|
||||
android:textColor="@drawable/selector_treasure_box_rb_text" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rb_open_ten"
|
||||
android:layout_width="55dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:background="@drawable/selector_treasure_box_rb"
|
||||
android:button="@null"
|
||||
android:gravity="center"
|
||||
android:text="10次"
|
||||
android:textSize="@dimen/sp_12"
|
||||
android:textColor="@drawable/selector_treasure_box_rb_text" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rb_open_hundred"
|
||||
android:layout_width="55dp"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/selector_treasure_box_rb"
|
||||
android:button="@null"
|
||||
android:gravity="center"
|
||||
android:text="100次"
|
||||
android:textSize="@dimen/sp_12"
|
||||
android:textColor="@drawable/selector_treasure_box_rb_text" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rb_auto"
|
||||
android:layout_width="55dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="@dimen/dp_10"
|
||||
android:background="@drawable/selector_treasure_box_rb"
|
||||
android:button="@null"
|
||||
android:gravity="center"
|
||||
android:text="自动砸"
|
||||
android:textSize="@dimen/sp_12"
|
||||
android:textColor="@drawable/selector_treasure_box_rb_text" />
|
||||
</RadioGroup>
|
||||
|
||||
<androidx.constraintlayout.widget.Placeholder
|
||||
android:id="@+id/place_holder"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginBottom="15dp"
|
||||
app:layout_constraintBottom_toTopOf="@id/rg_count" />
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="7dp"
|
||||
android:text="连续开启"
|
||||
android:textColor="#fff15fc3"
|
||||
android:textSize="11sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_box" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_hammer"
|
||||
android:id="@+id/iv_sub"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/icon_hammer_box"
|
||||
android:layout_marginRight="4dp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/place_holder"
|
||||
app:layout_constraintRight_toLeftOf="@+id/tv_residue"
|
||||
app:layout_constraintTop_toTopOf="@id/place_holder"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_residue"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:drawablePadding="5dp"
|
||||
android:text="剩余锤子:"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_14"
|
||||
app:layout_constraintBottom_toBottomOf="@id/place_holder"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintLeft_toRightOf="@+id/iv_hammer"
|
||||
app:layout_constraintRight_toLeftOf="@+id/tv_residue_count"
|
||||
app:layout_constraintTop_toTopOf="@id/place_holder" />
|
||||
<TextView
|
||||
android:id="@+id/tv_residue_count"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_5"
|
||||
android:layout_marginEnd="@dimen/dp_20"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="0"
|
||||
android:textColor="@color/color_FFEA03"
|
||||
android:textSize="15sp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/place_holder"
|
||||
app:layout_constraintLeft_toRightOf="@id/tv_residue"
|
||||
app:layout_constraintRight_toLeftOf="@+id/stv_buy"
|
||||
app:layout_constraintTop_toTopOf="@id/place_holder" />
|
||||
|
||||
<com.coorchice.library.SuperTextView
|
||||
android:id="@+id/stv_buy"
|
||||
android:layout_width="55dp"
|
||||
android:layout_height="25dp"
|
||||
android:gravity="center"
|
||||
android:layout_marginTop="10dp"
|
||||
android:onClick="@{click}"
|
||||
android:text="@string/buy"
|
||||
android:textColor="@color/color_AF2D00"
|
||||
android:textSize="@dimen/sp_13"
|
||||
android:background="@drawable/icon_box_rb_true"
|
||||
app:corner="12dp"
|
||||
app:stroke_color="@color/white"
|
||||
app:stroke_width="0dp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/place_holder"
|
||||
app:layout_constraintLeft_toRightOf="@id/tv_residue_count"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/place_holder" />
|
||||
android:src="@drawable/treasure_box_sub"
|
||||
app:layout_constraintEnd_toStartOf="@id/edit_num"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_continuous_open" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/edit_num"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="23dp"
|
||||
android:background="@color/white_transparent_12"
|
||||
android:gravity="center"
|
||||
android:minWidth="40dp"
|
||||
android:text="9999"
|
||||
android:textColor="#ffc33c98"
|
||||
android:textSize="13sp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/iv_sub"
|
||||
app:layout_constraintEnd_toStartOf="@id/iv_add"
|
||||
app:layout_constraintStart_toEndOf="@id/iv_sub"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_sub" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_add"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:onClick="@{click}"
|
||||
android:src="@drawable/treasure_box_add"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/edit_num"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_sub" />
|
||||
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_open"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_16"
|
||||
android:onClick="@{click}"
|
||||
android:layout_marginTop="15dp"
|
||||
android:layout_marginBottom="22dp"
|
||||
android:src="@drawable/auto_open_box"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_sub" />
|
||||
|
||||
<com.yizhuan.erban.treasure_box.widget.PrizeCover
|
||||
android:id="@+id/random_layout"
|
||||
android:layout_width="200dp"
|
||||
android:layout_height="175dp"
|
||||
android:layout_marginTop="60dp"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/rg_count" />
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:visibility="invisible" />
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/cb_not_show"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="12dp"
|
||||
android:button="@null"
|
||||
android:drawableLeft="@drawable/selector_box_hint"
|
||||
android:drawablePadding="@dimen/dp_6"
|
||||
android:gravity="center"
|
||||
android:text="不对外提示中奖信息"
|
||||
android:textSize="@dimen/sp_12"
|
||||
android:textColor="@color/white"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_open" />
|
||||
|
||||
<View
|
||||
android:id="@+id/bottom_bg_view"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="46dp"
|
||||
android:layout_marginTop="12dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/cb_not_show" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_coin"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_15"
|
||||
android:text="金币"
|
||||
android:textColor="@color/color_FFCF4C"
|
||||
android:textSize="@dimen/sp_15"
|
||||
app:layout_constraintBottom_toBottomOf="@id/bottom_bg_view"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/bottom_bg_view" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_coin_count"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:text="0"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_20"
|
||||
app:layout_constraintBottom_toBottomOf="@id/bottom_bg_view"
|
||||
app:layout_constraintLeft_toRightOf="@id/tv_coin"
|
||||
app:layout_constraintTop_toTopOf="@id/bottom_bg_view" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/stv_recharge"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="22dp"
|
||||
android:gravity="center"
|
||||
android:onClick="@{click}"
|
||||
android:text="充值"
|
||||
android:textColor="@color/color_AF2D00"
|
||||
android:textSize="@dimen/sp_16"
|
||||
android:background="@drawable/icon_box_charge"
|
||||
app:layout_constraintBottom_toBottomOf="@id/bottom_bg_view"
|
||||
app:layout_constraintRight_toRightOf="@id/bottom_bg_view"
|
||||
app:layout_constraintTop_toTopOf="@id/bottom_bg_view" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</layout>
|
||||
|
62
app/src/module_treasure_box/res/layout/dialog_box_more.xml
Normal file
@@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<data>
|
||||
|
||||
<variable
|
||||
name="click"
|
||||
type="android.view.View.OnClickListener" />
|
||||
</data>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/shape_white_top_10dp"
|
||||
android:orientation="vertical"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingBottom="80dp"
|
||||
android:paddingEnd="15dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:text="更多"
|
||||
android:textColor="#ff333333"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_get_key"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="43dp"
|
||||
android:background="@drawable/bottom_line"
|
||||
android:gravity="center_vertical"
|
||||
android:text="参与xxx活动获得66流星"
|
||||
android:textColor="#ff333333"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_history"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="43dp"
|
||||
android:background="@drawable/bottom_line"
|
||||
android:gravity="center_vertical"
|
||||
android:text="获奖记录"
|
||||
android:textColor="#ff333333"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_box_rule"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="43dp"
|
||||
android:gravity="center_vertical"
|
||||
android:text="玩法规则"
|
||||
android:textColor="#ff333333"
|
||||
android:textSize="14sp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</layout>
|
@@ -1,83 +1,174 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center"
|
||||
android:orientation="vertical">
|
||||
android:orientation="vertical"
|
||||
tools:background="@color/black_transparent_80">
|
||||
|
||||
<LinearLayout
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:baselineAligned="false"
|
||||
android:orientation="horizontal">
|
||||
|
||||
|
||||
<LinearLayout
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/cl_box_normal"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
android:layout_marginStart="@dimen/dp_20"
|
||||
app:layout_constraintEnd_toStartOf="@id/cl_box_honour"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<View
|
||||
android:id="@+id/view_bg"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginTop="14dp"
|
||||
android:background="@drawable/treasure_box_bg_normal"
|
||||
app:layout_constraintDimensionRatio="162:195"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_select_normal_box"
|
||||
android:id="@+id/iv_title"
|
||||
android:layout_width="100dp"
|
||||
android:layout_height="27dp"
|
||||
android:src="@drawable/treasure_box_title_normal"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginStart="25dp"
|
||||
android:layout_marginTop="15dp"
|
||||
android:layout_marginEnd="25dp"
|
||||
android:src="@drawable/default_cover"
|
||||
app:layout_constraintDimensionRatio="1:1"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_title" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_open"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginTop="10dp"
|
||||
android:src="@drawable/icon_dialog_normal_egg"
|
||||
tools:ignore="ContentDescription" />
|
||||
android:layout_marginTop="15dp"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:src="@drawable/bg_treasure_box_dialog_button"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/cl_box_honour"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_10"
|
||||
android:layout_marginEnd="20dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/cl_box_normal"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<View
|
||||
android:id="@+id/view_bg_honour"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginTop="14dp"
|
||||
android:background="@drawable/treasure_box_bg_normal"
|
||||
app:layout_constraintDimensionRatio="162:195"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_title_honour"
|
||||
android:layout_width="100dp"
|
||||
android:layout_height="27dp"
|
||||
android:src="@drawable/treasure_box_title"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginStart="25dp"
|
||||
android:layout_marginTop="15dp"
|
||||
android:layout_marginEnd="25dp"
|
||||
android:src="@drawable/default_cover"
|
||||
app:layout_constraintDimensionRatio="1:1"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_title_honour" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_open_honour"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="15dp"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:src="@drawable/bg_treasure_box_dialog_button"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_honour_box_limit"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20dp"
|
||||
android:gravity="center"
|
||||
android:textColor="#CCFFFFFF"
|
||||
android:textSize="14sp"
|
||||
app:layout_constraintEnd_toEndOf="@id/cl_box_honour"
|
||||
app:layout_constraintStart_toStartOf="@id/cl_box_honour"
|
||||
app:layout_constraintTop_toBottomOf="@id/cl_box_honour"
|
||||
tools:ignore="SmallSp"
|
||||
tools:text="限时:22:00 - 02:00" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20dp"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_honour_box_limit">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_select_normal_box"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom|center_horizontal"
|
||||
android:background="@drawable/bg_treasure_box_dialog_button"
|
||||
android:enabled="true" />
|
||||
android:text="参与xxx活动获得"
|
||||
android:textColor="#ffffffff"
|
||||
android:textSize="13sp" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/treasure_box_meteor" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="66流星>"
|
||||
android:textColor="#ffffffff"
|
||||
android:textSize="13sp" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_select_honour_box"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginTop="10dp"
|
||||
android:src="@drawable/icon_dialog_honour_egg"
|
||||
tools:ignore="ContentDescription" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_select_honour_box"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="9dp"
|
||||
android:layout_gravity="bottom|center_horizontal"
|
||||
android:background="@drawable/bg_treasure_box_dialog_button"
|
||||
android:enabled="true" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_honour_box_limit"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:textColor="#CCFFFFFF"
|
||||
android:textSize="14sp"
|
||||
tools:ignore="SmallSp"
|
||||
tools:text="限时:22:00 - 02:00" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_close"
|
||||
|