feat:初步完成领红包弹窗UI框架

This commit is contained in:
Max
2023-10-24 14:12:42 +08:00
parent ba65ad680f
commit a0667bdd8d
22 changed files with 427 additions and 11 deletions

View File

@@ -0,0 +1,72 @@
package com.yizhuan.erban.avroom.redpackage.open
import android.animation.Animator
import android.animation.AnimatorListenerAdapter
import android.animation.ObjectAnimator
import android.annotation.SuppressLint
import android.view.View
import android.view.WindowManager
import android.view.animation.AccelerateDecelerateInterpolator
import com.yizhuan.erban.R
import com.yizhuan.erban.base.BaseDialog
import com.yizhuan.erban.databinding.DialogRedPackageOpenBinding
import com.yizhuan.erban.databinding.RedPackageOpenDialogBinding
import com.yizhuan.xchat_android_core.redpackage.*
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes
import com.yizhuan.xchat_android_library.utils.SingleToastUtil
/**
* Created by Max on 2023/10/24 10:14
* Desc:领取红包
**/
@ActLayoutRes(R.layout.red_package_open_dialog)
class RedPackageOpenDialog2 : BaseDialog<RedPackageOpenDialogBinding>() {
private var mObjectAnimator: ObjectAnimator? = null
override fun onStart() {
width = WindowManager.LayoutParams.MATCH_PARENT
height = WindowManager.LayoutParams.WRAP_CONTENT
super.onStart()
}
override fun init() {
dialog?.setCanceledOnTouchOutside(false)
}
@SuppressLint("CheckResult")
private fun startRedPacketAnim(v: View) {
mObjectAnimator = ObjectAnimator.ofFloat(v, "rotationY", 0f, 360f)
mObjectAnimator?.let {
it.duration = 1500
it.interpolator = AccelerateDecelerateInterpolator()
it.addListener(object : AnimatorListenerAdapter() {
var isCanceled = false
override fun onAnimationCancel(animation: Animator) {
isCanceled = true
}
override fun onAnimationEnd(animation: Animator) {
if (!isCanceled) {
SingleToastUtil.showToast("End")
}
}
})
it.start()
}
}
override fun onDestroyView() {
super.onDestroyView()
mObjectAnimator?.cancel()
mObjectAnimator = null
}
override fun onPause() {
super.onPause()
dismissAllowingStateLoss()
}
}

View File

@@ -4,14 +4,12 @@ package com.yizhuan.erban.avroom.redpackage.send
import android.annotation.SuppressLint
import android.view.Gravity
import android.view.WindowManager
import com.chuhai.utils.ktx.dp
import com.chuhai.utils.ktx.toStringRes
import com.yizhuan.erban.R
import com.yizhuan.erban.avroom.redpackage.RedPackageEvent
import com.yizhuan.erban.base.BaseDialog
import com.yizhuan.erban.common.ViewPagerAdapter
import com.yizhuan.erban.databinding.DialogRedPackageSend2Binding
import com.yizhuan.erban.home.adapter.ContactsIndicatorAdapter
import com.yizhuan.erban.databinding.RedPackageSendDialogBinding
import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator
import com.yizhuan.xchat_android_core.redpackage.*
@@ -20,8 +18,12 @@ import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
@ActLayoutRes(R.layout.dialog_red_package_send2)
class RedPackageSendDialog2 : BaseDialog<DialogRedPackageSend2Binding>() {
/**
* Created by Max on 2023/10/23 12:14
* Desc:发红包
**/
@ActLayoutRes(R.layout.red_package_send_dialog)
class RedPackageSendDialog2 : BaseDialog<RedPackageSendDialogBinding>() {
override fun onStart() {
gravity = Gravity.BOTTOM

View File

@@ -11,6 +11,7 @@ import com.tongdaxing.erban.upgrade.AppUpgradeHelper
import com.yizhuan.erban.BuildConfig
import com.yizhuan.erban.R
import com.yizhuan.erban.UIHelper
import com.yizhuan.erban.avroom.redpackage.open.RedPackageOpenDialog2
import com.yizhuan.erban.avroom.redpackage.send.RedPackageSendDialog2
import com.yizhuan.erban.base.BaseViewBindingActivity
import com.yizhuan.erban.common.widget.dialog.DialogManager.OkCancelDialogListener
@@ -79,7 +80,8 @@ class SettingActivity : BaseViewBindingActivity<ActivitySettingBinding>(), View.
if (BuildConfig.DEBUG) {
binding.titleBar.setOnTitleClickListener {
RedPackageSendDialog2().show(this)
// RedPackageSendDialog2().show(this)
RedPackageOpenDialog2().show(this)
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

View File

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 112 KiB

View File

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -0,0 +1,22 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="28dp"
android:height="28dp"
android:viewportWidth="28"
android:viewportHeight="28">
<path
android:pathData="M14,28C6.28,28 0,21.72 0,14C0,6.28 6.28,0 14,0C21.72,0 28,6.28 28,14C28,21.72 21.72,28 14,28ZM14,2.009C7.388,2.009 2.009,7.388 2.009,14C2.009,20.611 7.388,25.991 14,25.991C20.611,25.991 25.991,20.611 25.991,14C25.991,7.388 20.611,2.009 14,2.009Z"
android:strokeAlpha="0.8"
android:strokeWidth="1"
android:fillColor="#FFFFFF"
android:fillType="nonZero"
android:strokeColor="#00000000"
android:fillAlpha="0.8"/>
<path
android:pathData="M15.408,14.043L19.732,9.766C20.125,9.378 20.128,8.745 19.74,8.352C19.352,7.959 18.718,7.956 18.326,8.344L13.996,12.626L9.732,8.349C9.341,7.958 8.709,7.956 8.318,8.347C7.927,8.737 7.926,9.37 8.316,9.761L12.574,14.032L8.281,18.279C7.888,18.668 7.885,19.3 8.273,19.693C8.469,19.891 8.726,19.99 8.984,19.99C9.238,19.99 9.492,19.893 9.687,19.701L13.986,15.449L18.32,19.797C18.515,19.993 18.771,20.091 19.028,20.091C19.284,20.091 19.539,19.993 19.734,19.799C20.125,19.409 20.126,18.777 19.736,18.385L15.408,14.043Z"
android:strokeAlpha="0.8"
android:strokeWidth="1"
android:fillColor="#FFFFFF"
android:fillType="nonZero"
android:strokeColor="#00000000"
android:fillAlpha="0.8"/>
</vector>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="1dp" android:color="#b3ffffff" />
<solid android:color="#66f52727" />
<corners android:radius="8dp" />
</shape>

View File

@@ -0,0 +1,305 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:background="@color/black">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layout_content"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginHorizontal="24dp"
android:background="@drawable/red_package_open_bg"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintDimensionRatio="h,327:466"
app:layout_constraintTop_toTopOf="parent">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/line_close_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.0665" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/line_send_avatar_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.2017" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/line_tips_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.4184" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/line_btn_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.5257" />
<ImageView
android:id="@+id/iv_close"
android:layout_width="44dp"
android:layout_height="44dp"
android:scaleType="center"
android:src="@drawable/red_package_ic_close"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/line_close_top" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_send_avatar"
android:layout_width="65dp"
android:layout_height="65dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/line_send_avatar_top"
tools:src="@drawable/default_avatar" />
<TextView
android:id="@+id/tv_send_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:ellipsize="end"
android:maxWidth="300dp"
android:maxLines="1"
android:textColor="@color/white"
android:textSize="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/iv_send_avatar"
tools:text="Name" />
<TextView
android:id="@+id/tv_open_tips"
android:layout_width="0dp"
android:layout_height="36dp"
android:background="@drawable/red_package_open_tips_bg"
android:gravity="center"
android:textColor="@color/white"
android:textSize="11dp"
android:paddingHorizontal="5dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/line_tips_top"
app:layout_constraintWidth_percent="0.7064"
tools:text="恭喜发财!" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layout_btn"
android:layout_width="143dp"
android:layout_height="124dp"
android:background="@drawable/red_package_open_btn_bg"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/line_btn_top">
<TextView
android:id="@+id/tv_btn_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:maxLines="1"
android:text="00:00"
android:textColor="@color/color_BF461F"
android:textSize="24dp"
app:layout_constraintBottom_toTopOf="@id/tv_btn_time_tips"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" />
<TextView
android:id="@+id/tv_btn_time_tips"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/red_package_open_btn_await"
android:textColor="@color/color_BF461F"
android:textSize="12dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_btn_time" />
<androidx.constraintlayout.widget.Group
android:id="@+id/group_btn_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="tv_btn_time,tv_btn_time_tips"
tools:visibility="visible" />
<TextView
android:id="@+id/tv_btn_msg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/red_package_open_btn_msg"
android:textColor="@color/color_BF461F"
android:textSize="14dp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible" />
<ImageView
android:id="@+id/iv_btn_get"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/red_package_open_btn_get"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<!--待开启状态视图-->
<androidx.constraintlayout.widget.Group
android:id="@+id/group_open"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="layout_btn,iv_send_avatar,tv_send_name,tv_open_tips" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/line_money_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.1909" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/line_opened_send_avatar_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.3776" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/line_count_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.8969" />
<ImageView
android:id="@+id/iv_money"
android:layout_width="34dp"
android:layout_height="34dp"
android:src="@drawable/red_package_send_ic_diamond"
app:layout_constraintEnd_toStartOf="@id/tv_money"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/line_money_top" />
<TextView
android:id="@+id/tv_money"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="2dp"
android:maxLines="1"
android:text="0"
android:textColor="@color/color_FF285C"
android:textSize="32dp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@id/iv_money"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/iv_money"
app:layout_constraintTop_toTopOf="@id/iv_money" />
<TextView
android:id="@+id/tv_money_tips"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/red_package_opened_money_tips"
android:textColor="@color/color_767585"
android:textSize="12sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_money" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_opened_send_avatar"
android:layout_width="26dp"
android:layout_height="26dp"
app:cborder_color="@color/white"
app:cborder_width="1dp"
app:layout_constraintEnd_toStartOf="@id/tv_opened_send_name"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/line_opened_send_avatar_top"
tools:src="@drawable/default_avatar" />
<TextView
android:id="@+id/tv_opened_send_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="3dp"
android:maxLines="1"
android:textColor="@color/white"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@id/iv_opened_send_avatar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/iv_opened_send_avatar"
app:layout_constraintTop_toTopOf="@id/iv_opened_send_avatar"
tools:text="Name" />
<TextView
android:id="@+id/tv_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="10dp"
android:layout_marginTop="3dp"
android:alpha="90"
android:ellipsize="end"
android:maxLines="1"
android:text="@string/red_package_msg_def"
android:textColor="@color/white"
android:textSize="14sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/iv_opened_send_avatar" />
<TextView
android:id="@+id/tv_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:alpha="0.8"
android:text="@string/red_package_opened_count_format"
android:textColor="@color/white"
android:textSize="10sp"
app:layout_constraintEnd_toEndOf="@id/recyclerView"
app:layout_constraintTop_toBottomOf="@id/line_count_top" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="5dp"
app:layout_constraintBottom_toTopOf="@id/tv_count"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_message"
app:layout_constraintWidth_percent="0.6819" />
<androidx.constraintlayout.widget.Group
android:id="@+id/group_opened"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
app:constraint_referenced_ids="recyclerView,tv_count,tv_message,tv_opened_send_name,iv_opened_send_avatar,tv_money,tv_money_tips,iv_money" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -31,7 +31,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="9dp"
android:src="@drawable/red_package_ic"
android:src="@drawable/red_package_send_ic"
app:layout_constraintBottom_toBottomOf="@id/et_money"
app:layout_constraintStart_toStartOf="@id/et_money"
app:layout_constraintTop_toTopOf="@id/et_money" />

View File

@@ -31,7 +31,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="9dp"
android:src="@drawable/red_package_ic"
android:src="@drawable/red_package_send_ic"
app:layout_constraintBottom_toBottomOf="@id/et_money"
app:layout_constraintStart_toStartOf="@id/et_money"
app:layout_constraintTop_toTopOf="@id/et_money" />

View File

@@ -20,7 +20,7 @@
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:src="@drawable/red_package_bg"
android:src="@drawable/red_package_send_bg"
app:layout_constraintTop_toTopOf="parent" />
<com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator
@@ -73,7 +73,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:scaleType="center"
android:src="@drawable/red_package_ic_diamond"
android:src="@drawable/red_package_send_ic_diamond"
app:layout_constraintBottom_toBottomOf="@id/tv_balance"
app:layout_constraintStart_toStartOf="@id/tv_balance"
app:layout_constraintTop_toTopOf="@id/tv_balance" />

View File

@@ -707,5 +707,5 @@
<color name="color_322F4D">#322F4D</color>
<color name="color_EBEEF5">#EBEEF5</color>
<color name="color_94959C">#94959C</color>
<color name="color_BF461F">#FFBF461F</color>
</resources>

View File

@@ -5165,5 +5165,9 @@
<string name="red_package_now">立即生效</string>
<string name="red_package_delay">即時生效</string>
<string name="red_package_msg_def">恭喜發財,大吉大利!</string>
<string name="red_package_open_btn_await">後開搶</string>
<string name="red_package_open_btn_msg">發彈幕\n搶紅包</string>
<string name="red_package_opened_money_tips">已存入錢包,請到我的收益確認</string>
<string name="red_package_opened_count_format">已領取%s/%s個</string>
</resources>

View File

@@ -79,4 +79,6 @@
<color name="text_hint_555574">#B3333333</color>
<color name="color_f4f4fa">#FFF4F4FA</color>
</resources>