主播评级弹窗改造
This commit is contained in:
@@ -3,11 +3,16 @@ package com.mango.moshen.home.dialog
|
|||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.text.Spannable
|
import android.text.Spannable
|
||||||
import android.text.SpannableStringBuilder
|
import android.text.SpannableStringBuilder
|
||||||
|
import android.view.View
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
|
import androidx.constraintlayout.widget.ConstraintSet
|
||||||
import androidx.core.graphics.toColorInt
|
import androidx.core.graphics.toColorInt
|
||||||
|
import androidx.core.view.isGone
|
||||||
|
import androidx.core.view.isVisible
|
||||||
import androidx.fragment.app.viewModels
|
import androidx.fragment.app.viewModels
|
||||||
import com.mango.core.statistic.StatisticManager
|
import com.mango.core.statistic.StatisticManager
|
||||||
import com.mango.core.statistic.protocol.StatisticsProtocol
|
import com.mango.core.statistic.protocol.StatisticsProtocol
|
||||||
|
import com.mango.core.user.bean.AnchorGradeInfo
|
||||||
import com.mango.moshen.R
|
import com.mango.moshen.R
|
||||||
import com.mango.moshen.base.BaseDialog
|
import com.mango.moshen.base.BaseDialog
|
||||||
import com.mango.moshen.databinding.DialogAnchorGradeBinding
|
import com.mango.moshen.databinding.DialogAnchorGradeBinding
|
||||||
@@ -49,8 +54,6 @@ class AnchorGradeDialog : BaseDialog<DialogAnchorGradeBinding>() {
|
|||||||
|
|
||||||
private val meViewModel: MeViewModel by viewModels()
|
private val meViewModel: MeViewModel by viewModels()
|
||||||
|
|
||||||
private val levelArray = arrayOf("D", "C", "B", "A", "S")
|
|
||||||
|
|
||||||
private var disposable: Disposable? = null
|
private var disposable: Disposable? = null
|
||||||
|
|
||||||
@SuppressLint("CheckResult", "SetTextI18n")
|
@SuppressLint("CheckResult", "SetTextI18n")
|
||||||
@@ -58,41 +61,15 @@ class AnchorGradeDialog : BaseDialog<DialogAnchorGradeBinding>() {
|
|||||||
meViewModel.getAnchorGradeInfo(true)
|
meViewModel.getAnchorGradeInfo(true)
|
||||||
meViewModel.anchorGradeInfoLiveData.observe(this) {
|
meViewModel.anchorGradeInfoLiveData.observe(this) {
|
||||||
if (it == null) return@observe
|
if (it == null) return@observe
|
||||||
val isCompleted =
|
|
||||||
it.currentReply >= it.targetReply && it.currentDiamond >= it.targetDiamond
|
|
||||||
binding.ivTitle.setImageResource(if (isCompleted) R.drawable.anchor_grade_bg_complete_text else R.drawable.anchor_grade_bg_task_text)
|
|
||||||
anchorDrawableResIds[it.grade.uppercase(Locale.getDefault())]?.let { resId ->
|
anchorDrawableResIds[it.grade.uppercase(Locale.getDefault())]?.let { resId ->
|
||||||
binding.ivCurrLevel.setImageResource(resId)
|
binding.ivCurrLevel.setImageResource(resId)
|
||||||
}
|
}
|
||||||
val nextLevel = levelArray.getOrNull(levelArray.indexOf(it.grade) + 1)
|
val constraintSet = ConstraintSet()
|
||||||
binding.tvDiamondCurrLevel.text = it.grade
|
constraintSet.clone(binding.clRoot)
|
||||||
binding.tvDiamondNextLevel.text = nextLevel
|
setupDiamond(it, constraintSet)
|
||||||
binding.tvReplayCurrLevel.text = it.grade
|
setupReply(it, constraintSet)
|
||||||
binding.tvReplayNextLevel.text = nextLevel
|
constraintSet.applyTo(binding.clRoot)
|
||||||
|
|
||||||
binding.tvDiamondTargetNum.text = it.currentDiamond.toString()
|
|
||||||
binding.pbDiamond.max = it.targetDiamond
|
|
||||||
binding.pbDiamond.progress = it.currentDiamond
|
|
||||||
binding.tvDiamondGap.text =
|
|
||||||
(it.targetDiamond - it.currentDiamond).let { diamondGap ->
|
|
||||||
if (diamondGap > 0) {
|
|
||||||
"还差${diamondGap}钻可完成"
|
|
||||||
} else {
|
|
||||||
"已完成"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
binding.tvReplayTargetNum.text = "${(it.currentReply * 100).toInt()}%"
|
|
||||||
binding.pbReplay.max = (it.targetReply * 100).toInt()
|
|
||||||
binding.pbReplay.progress = (it.currentReply * 100).toInt()
|
|
||||||
binding.tvReplayGap.text =
|
|
||||||
((it.targetReply - it.currentReply) * 100).toInt().let { replyGap ->
|
|
||||||
if (replyGap > 0) {
|
|
||||||
"还差${replyGap}%可完成"
|
|
||||||
} else {
|
|
||||||
"已完成"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
disposable?.dispose()
|
disposable?.dispose()
|
||||||
disposable = Observable.intervalRange(0, Int.MAX_VALUE.toLong(), 0, 1, TimeUnit.SECONDS)
|
disposable = Observable.intervalRange(0, Int.MAX_VALUE.toLong(), 0, 1, TimeUnit.SECONDS)
|
||||||
.observeOn(AndroidSchedulers.mainThread()).compose(bindToLifecycle())
|
.observeOn(AndroidSchedulers.mainThread()).compose(bindToLifecycle())
|
||||||
@@ -125,6 +102,159 @@ class AnchorGradeDialog : BaseDialog<DialogAnchorGradeBinding>() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("SetTextI18n")
|
||||||
|
private fun setupDiamond(it: AnchorGradeInfo, constraintSet: ConstraintSet) {
|
||||||
|
binding.tvDiamondTargetNum.text = it.currentDiamond.toString()
|
||||||
|
binding.pbDiamond.max = 1000
|
||||||
|
var startEndID = R.id.tv_diamond_d
|
||||||
|
var endEndID = R.id.tv_diamond_c
|
||||||
|
when (it.currentDiamond) {
|
||||||
|
in 0 until it.levelCDiamond -> {
|
||||||
|
binding.ivDiamondLevelD.setImageResource(R.drawable.anchor_grade_ic_level_current)
|
||||||
|
binding.pbDiamond.progress =
|
||||||
|
((it.currentDiamond / it.levelCDiamond.toDouble() * 250).toInt()
|
||||||
|
.coerceAtLeast(30))
|
||||||
|
.coerceAtMost(220)
|
||||||
|
binding.tvDiamondGap.text = "还差${it.levelCDiamond - it.currentDiamond}钻"
|
||||||
|
}
|
||||||
|
in it.levelCDiamond until it.levelBDiamond -> {
|
||||||
|
binding.ivDiamondLevelC.setImageResource(R.drawable.anchor_grade_ic_level_current)
|
||||||
|
binding.ivDiamondLevelC.isVisible = true
|
||||||
|
binding.pbDiamond.progress =
|
||||||
|
(((it.currentDiamond - it.levelCDiamond) / (it.levelBDiamond - it.levelCDiamond).toDouble() * 250).toInt()
|
||||||
|
.coerceAtLeast(15) + 250)
|
||||||
|
.coerceAtMost(485)
|
||||||
|
startEndID = R.id.tv_diamond_c
|
||||||
|
endEndID = R.id.tv_diamond_b
|
||||||
|
binding.tvDiamondGap.text = "还差${it.levelBDiamond - it.currentDiamond}钻"
|
||||||
|
}
|
||||||
|
in it.levelBDiamond until it.levelADiamond -> {
|
||||||
|
binding.ivDiamondLevelB.setImageResource(R.drawable.anchor_grade_ic_level_current)
|
||||||
|
binding.ivDiamondLevelC.isVisible = true
|
||||||
|
binding.ivDiamondLevelB.isVisible = true
|
||||||
|
binding.pbDiamond.progress =
|
||||||
|
(((it.currentDiamond - it.levelBDiamond) / (it.levelADiamond - it.levelBDiamond).toDouble() * 250).toInt()
|
||||||
|
.coerceAtLeast(15) + 500)
|
||||||
|
.coerceAtMost(735)
|
||||||
|
startEndID = R.id.tv_diamond_b
|
||||||
|
endEndID = R.id.tv_diamond_a
|
||||||
|
binding.tvDiamondGap.text = "还差${it.levelADiamond - it.currentDiamond}钻"
|
||||||
|
}
|
||||||
|
in it.levelADiamond until it.levelSDiamond -> {
|
||||||
|
binding.ivDiamondLevelA.setImageResource(R.drawable.anchor_grade_ic_level_current)
|
||||||
|
binding.ivDiamondLevelC.isVisible = true
|
||||||
|
binding.ivDiamondLevelB.isVisible = true
|
||||||
|
binding.ivDiamondLevelA.isVisible = true
|
||||||
|
binding.pbDiamond.progress =
|
||||||
|
(((it.currentDiamond - it.levelADiamond) / (it.levelSDiamond - it.levelADiamond).toDouble() * 250).toInt()
|
||||||
|
.coerceAtLeast(30) + 750)
|
||||||
|
.coerceAtMost(970)
|
||||||
|
startEndID = R.id.tv_diamond_a
|
||||||
|
endEndID = R.id.tv_diamond_s
|
||||||
|
binding.tvDiamondGap.text = "还差${it.levelSDiamond - it.currentDiamond}钻"
|
||||||
|
}
|
||||||
|
else -> {
|
||||||
|
binding.ivDiamondLevelS.setImageResource(R.drawable.anchor_grade_ic_level_current)
|
||||||
|
binding.ivDiamondLevelC.isVisible = true
|
||||||
|
binding.ivDiamondLevelB.isVisible = true
|
||||||
|
binding.ivDiamondLevelA.isVisible = true
|
||||||
|
binding.ivDiamondLevelS.isVisible = true
|
||||||
|
binding.pbDiamond.progress = binding.pbDiamond.max
|
||||||
|
binding.tvDiamondGap.isGone = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
constraintSet.connect(
|
||||||
|
R.id.tv_diamond_gap,
|
||||||
|
ConstraintSet.START,
|
||||||
|
startEndID,
|
||||||
|
ConstraintSet.END
|
||||||
|
)
|
||||||
|
constraintSet.connect(
|
||||||
|
R.id.tv_diamond_gap,
|
||||||
|
ConstraintSet.END,
|
||||||
|
endEndID,
|
||||||
|
ConstraintSet.START
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressLint("SetTextI18n")
|
||||||
|
private fun setupReply(it: AnchorGradeInfo, constraintSet: ConstraintSet) {
|
||||||
|
if (!it.satisfyReply) {
|
||||||
|
constraintSet.setVisibility(R.id.group_reply, View.GONE)
|
||||||
|
constraintSet.setVisibility(R.id.tv_satisfy_reply, View.VISIBLE)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
binding.pbReplay.max = 1000
|
||||||
|
binding.tvReplayTargetNum.text = "${(it.currentReply * 100).toInt()}%"
|
||||||
|
var startEndIDReply = R.id.tv_replay_d
|
||||||
|
var endEndIDReply = R.id.tv_replay_c
|
||||||
|
if (0 <= it.currentReply && it.currentReply < it.levelCReply) {
|
||||||
|
binding.ivReplayLevelD.setImageResource(R.drawable.anchor_grade_ic_level_current)
|
||||||
|
binding.pbReplay.progress =
|
||||||
|
((it.currentReply / it.levelCReply * 250).toInt()
|
||||||
|
.coerceAtLeast(30))
|
||||||
|
.coerceAtMost(220)
|
||||||
|
binding.tvReplayGap.text =
|
||||||
|
"还差${((it.levelCReply - it.currentReply) * 100).toInt()}%"
|
||||||
|
} else if (it.levelCReply <= it.currentReply && it.currentReply < it.levelBReply) {
|
||||||
|
binding.ivReplayLevelC.setImageResource(R.drawable.anchor_grade_ic_level_current)
|
||||||
|
binding.ivReplayLevelC.isVisible = true
|
||||||
|
binding.pbDiamond.progress =
|
||||||
|
(((it.currentReply - it.levelCReply) / (it.levelBReply - it.levelCReply) * 250).toInt()
|
||||||
|
.coerceAtLeast(15) + 250)
|
||||||
|
.coerceAtMost(485)
|
||||||
|
startEndIDReply = R.id.tv_replay_c
|
||||||
|
endEndIDReply = R.id.tv_replay_b
|
||||||
|
binding.tvReplayGap.text =
|
||||||
|
"还差${((it.levelBReply - it.currentReply) * 100).toInt()}%"
|
||||||
|
} else if (it.levelBReply <= it.currentReply && it.currentReply < it.levelAReply) {
|
||||||
|
binding.ivReplayLevelB.setImageResource(R.drawable.anchor_grade_ic_level_current)
|
||||||
|
binding.ivReplayLevelC.isVisible = true
|
||||||
|
binding.ivReplayLevelB.isVisible = true
|
||||||
|
binding.pbReplay.progress =
|
||||||
|
(((it.currentReply - it.levelBReply) / (it.levelAReply - it.levelBReply) * 250).toInt()
|
||||||
|
.coerceAtLeast(15) + 500)
|
||||||
|
.coerceAtMost(735)
|
||||||
|
startEndIDReply = R.id.tv_replay_b
|
||||||
|
endEndIDReply = R.id.tv_replay_a
|
||||||
|
binding.tvReplayGap.text =
|
||||||
|
"还差${((it.levelAReply - it.currentReply) * 100).toInt()}%"
|
||||||
|
} else if (it.levelAReply <= it.currentReply && it.currentReply < it.levelSReply) {
|
||||||
|
binding.ivReplayLevelA.setImageResource(R.drawable.anchor_grade_ic_level_current)
|
||||||
|
binding.ivReplayLevelC.isVisible = true
|
||||||
|
binding.ivReplayLevelB.isVisible = true
|
||||||
|
binding.ivReplayLevelA.isVisible = true
|
||||||
|
binding.pbReplay.progress =
|
||||||
|
(((it.currentReply - it.levelAReply) / (it.levelSReply - it.levelAReply) * 250).toInt()
|
||||||
|
.coerceAtLeast(30) + 750)
|
||||||
|
.coerceAtMost(970)
|
||||||
|
startEndIDReply = R.id.tv_replay_a
|
||||||
|
endEndIDReply = R.id.tv_replay_s
|
||||||
|
binding.tvReplayGap.text =
|
||||||
|
"还差${((it.levelSReply - it.currentReply) * 100).toInt()}%"
|
||||||
|
} else {
|
||||||
|
binding.ivReplayLevelS.setImageResource(R.drawable.anchor_grade_ic_level_current)
|
||||||
|
binding.ivReplayLevelC.isVisible = true
|
||||||
|
binding.ivReplayLevelB.isVisible = true
|
||||||
|
binding.ivReplayLevelA.isVisible = true
|
||||||
|
binding.ivReplayLevelS.isVisible = true
|
||||||
|
binding.pbReplay.progress = binding.pbReplay.max
|
||||||
|
binding.tvReplayGap.isGone = true
|
||||||
|
}
|
||||||
|
constraintSet.connect(
|
||||||
|
R.id.tv_replay_gap,
|
||||||
|
ConstraintSet.START,
|
||||||
|
startEndIDReply,
|
||||||
|
ConstraintSet.END
|
||||||
|
)
|
||||||
|
constraintSet.connect(
|
||||||
|
R.id.tv_replay_gap,
|
||||||
|
ConstraintSet.END,
|
||||||
|
endEndIDReply,
|
||||||
|
ConstraintSet.START
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
override fun onDestroyView() {
|
override fun onDestroyView() {
|
||||||
super.onDestroyView()
|
super.onDestroyView()
|
||||||
disposable?.dispose()
|
disposable?.dispose()
|
||||||
|
BIN
app/src/main/res/drawable-xhdpi/anchor_grade_bg_pb.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/anchor_grade_bg_pb.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
Binary file not shown.
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 7.4 KiB |
Binary file not shown.
After Width: | Height: | Size: 365 B |
BIN
app/src/main/res/drawable-xhdpi/anchor_grade_ic_level_exceed.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/anchor_grade_ic_level_exceed.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 739 B |
@@ -3,7 +3,7 @@
|
|||||||
<!-- 定义轨道的背景 -->
|
<!-- 定义轨道的背景 -->
|
||||||
<item android:id="@android:id/background">
|
<item android:id="@android:id/background">
|
||||||
<shape android:shape="rectangle">
|
<shape android:shape="rectangle">
|
||||||
<solid android:color="#1a000124" />
|
<solid android:color="@color/transparent" />
|
||||||
<corners android:radius="@dimen/dp_10" />
|
<corners android:radius="@dimen/dp_10" />
|
||||||
</shape>
|
</shape>
|
||||||
</item>
|
</item>
|
8
app/src/main/res/drawable/shape_black_10_100dp.xml
Normal file
8
app/src/main/res/drawable/shape_black_10_100dp.xml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="rectangle">
|
||||||
|
|
||||||
|
<solid android:color="@color/black_transparent_10" />
|
||||||
|
|
||||||
|
<corners android:radius="100dp" />
|
||||||
|
</shape>
|
@@ -8,6 +8,7 @@
|
|||||||
tools:background="@color/black_transparent_50">
|
tools:background="@color/black_transparent_50">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:id="@+id/cl_root"
|
||||||
android:layout_width="303dp"
|
android:layout_width="303dp"
|
||||||
android:layout_height="280dp"
|
android:layout_height="280dp"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
@@ -15,6 +16,7 @@
|
|||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
android:id="@+id/tv_curr_text"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
@@ -40,7 +42,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="12dp"
|
android:layout_marginStart="12dp"
|
||||||
android:layout_marginTop="48dp"
|
android:layout_marginTop="48dp"
|
||||||
tools:src="@drawable/anchor_grade_bg_complete_text"
|
android:src="@drawable/anchor_grade_bg_task_text"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
@@ -48,7 +50,7 @@
|
|||||||
android:id="@+id/tv_diamond"
|
android:id="@+id/tv_diamond"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="18dp"
|
android:layout_marginStart="20dp"
|
||||||
android:layout_marginTop="25dp"
|
android:layout_marginTop="25dp"
|
||||||
android:text="收礼钻石数:"
|
android:text="收礼钻石数:"
|
||||||
android:textColor="#8A8CAB"
|
android:textColor="#8A8CAB"
|
||||||
@@ -66,64 +68,155 @@
|
|||||||
app:layout_constraintStart_toEndOf="@id/tv_diamond"
|
app:layout_constraintStart_toEndOf="@id/tv_diamond"
|
||||||
app:layout_constraintTop_toTopOf="@id/tv_diamond" />
|
app:layout_constraintTop_toTopOf="@id/tv_diamond" />
|
||||||
|
|
||||||
<ProgressBar
|
<View
|
||||||
android:id="@+id/pb_diamond"
|
android:id="@+id/view_bg_diamond_pb"
|
||||||
style="?android:attr/progressBarStyleHorizontal"
|
android:layout_width="261dp"
|
||||||
android:layout_width="260dp"
|
android:layout_height="9dp"
|
||||||
android:layout_height="16dp"
|
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:layout_marginEnd="3dp"
|
android:background="@drawable/anchor_grade_bg_pb"
|
||||||
android:max="100"
|
|
||||||
android:progress="0"
|
|
||||||
android:progressDrawable="@drawable/anchor_grade_bg_pb"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/tv_diamond" />
|
app:layout_constraintTop_toBottomOf="@id/tv_diamond" />
|
||||||
|
|
||||||
|
<ProgressBar
|
||||||
|
android:id="@+id/pb_diamond"
|
||||||
|
style="?android:attr/progressBarStyleHorizontal"
|
||||||
|
android:layout_width="261dp"
|
||||||
|
android:layout_height="4dp"
|
||||||
|
android:max="1000"
|
||||||
|
android:progress="666"
|
||||||
|
android:progressDrawable="@drawable/anchor_grade_bg_progress"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@id/view_bg_diamond_pb"
|
||||||
|
app:layout_constraintEnd_toEndOf="@id/view_bg_diamond_pb"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/view_bg_diamond_pb"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/view_bg_diamond_pb" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_diamond_level_d"
|
||||||
|
android:layout_width="8dp"
|
||||||
|
android:layout_height="8dp"
|
||||||
|
android:src="@drawable/anchor_grade_ic_level_exceed"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@id/view_bg_diamond_pb"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/view_bg_diamond_pb"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/view_bg_diamond_pb" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_diamond_level_c"
|
||||||
|
android:layout_width="8dp"
|
||||||
|
android:layout_height="8dp"
|
||||||
|
android:layout_marginStart="63dp"
|
||||||
|
android:src="@drawable/anchor_grade_ic_level_exceed"
|
||||||
|
android:visibility="invisible"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@id/view_bg_diamond_pb"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/view_bg_diamond_pb"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/view_bg_diamond_pb" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_diamond_level_b"
|
||||||
|
android:layout_width="8dp"
|
||||||
|
android:layout_height="8dp"
|
||||||
|
android:layout_marginStart="126dp"
|
||||||
|
android:src="@drawable/anchor_grade_ic_level_exceed"
|
||||||
|
android:visibility="invisible"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@id/view_bg_diamond_pb"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/view_bg_diamond_pb"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/view_bg_diamond_pb" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_diamond_level_a"
|
||||||
|
android:layout_width="8dp"
|
||||||
|
android:layout_height="8dp"
|
||||||
|
android:layout_marginStart="189dp"
|
||||||
|
android:src="@drawable/anchor_grade_ic_level_exceed"
|
||||||
|
android:visibility="invisible"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@id/view_bg_diamond_pb"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/view_bg_diamond_pb"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/view_bg_diamond_pb" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_diamond_level_s"
|
||||||
|
android:layout_width="8dp"
|
||||||
|
android:layout_height="8dp"
|
||||||
|
android:src="@drawable/anchor_grade_ic_level_exceed"
|
||||||
|
android:visibility="invisible"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@id/view_bg_diamond_pb"
|
||||||
|
app:layout_constraintEnd_toEndOf="@id/view_bg_diamond_pb"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/view_bg_diamond_pb" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_diamond_curr_level"
|
android:id="@+id/tv_diamond_d"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="5dp"
|
android:text="D"
|
||||||
android:includeFontPadding="false"
|
android:textColor="@color/color_babbcd"
|
||||||
android:textColor="@color/white"
|
android:textSize="10dp"
|
||||||
android:textSize="14dp"
|
app:layout_constraintEnd_toEndOf="@id/iv_diamond_level_d"
|
||||||
app:layout_constraintBottom_toBottomOf="@id/pb_diamond"
|
app:layout_constraintStart_toStartOf="@id/iv_diamond_level_d"
|
||||||
app:layout_constraintStart_toStartOf="@id/pb_diamond"
|
app:layout_constraintTop_toBottomOf="@id/view_bg_diamond_pb" />
|
||||||
app:layout_constraintTop_toTopOf="@id/pb_diamond"
|
|
||||||
tools:text="A" />
|
<TextView
|
||||||
|
android:id="@+id/tv_diamond_c"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="C"
|
||||||
|
android:textColor="@color/color_babbcd"
|
||||||
|
android:textSize="10dp"
|
||||||
|
app:layout_constraintEnd_toEndOf="@id/iv_diamond_level_c"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/iv_diamond_level_c"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/view_bg_diamond_pb" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_diamond_b"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="B"
|
||||||
|
android:textColor="@color/color_babbcd"
|
||||||
|
android:textSize="10dp"
|
||||||
|
app:layout_constraintEnd_toEndOf="@id/iv_diamond_level_b"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/iv_diamond_level_b"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/view_bg_diamond_pb" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_diamond_a"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="A"
|
||||||
|
android:textColor="@color/color_babbcd"
|
||||||
|
android:textSize="10dp"
|
||||||
|
app:layout_constraintEnd_toEndOf="@id/iv_diamond_level_a"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/iv_diamond_level_a"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/view_bg_diamond_pb" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_diamond_s"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="S"
|
||||||
|
android:textColor="@color/color_babbcd"
|
||||||
|
android:textSize="10dp"
|
||||||
|
app:layout_constraintEnd_toEndOf="@id/iv_diamond_level_s"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/iv_diamond_level_s"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/view_bg_diamond_pb" />
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_diamond_gap"
|
android:id="@+id/tv_diamond_gap"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="2dp"
|
|
||||||
android:fontFamily="sans-serif"
|
android:fontFamily="sans-serif"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/color_babbcd"
|
||||||
android:textSize="10dp"
|
android:textSize="10dp"
|
||||||
app:layout_constraintBottom_toBottomOf="@id/pb_diamond"
|
app:layout_constraintEnd_toEndOf="@id/tv_diamond_s"
|
||||||
app:layout_constraintStart_toEndOf="@id/tv_diamond_curr_level"
|
app:layout_constraintStart_toStartOf="@id/tv_diamond_a"
|
||||||
app:layout_constraintTop_toTopOf="@id/pb_diamond"
|
app:layout_constraintTop_toBottomOf="@id/view_bg_diamond_pb"
|
||||||
tools:text="还差3333钻可完成" />
|
tools:text="还差3333钻" />
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tv_diamond_next_level"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginEnd="5dp"
|
|
||||||
android:includeFontPadding="false"
|
|
||||||
android:textColor="@color/white"
|
|
||||||
android:textSize="14dp"
|
|
||||||
app:layout_constraintBottom_toBottomOf="@id/pb_diamond"
|
|
||||||
app:layout_constraintEnd_toEndOf="@id/pb_diamond"
|
|
||||||
app:layout_constraintTop_toTopOf="@id/pb_diamond"
|
|
||||||
tools:text="S" />
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_replay"
|
android:id="@+id/tv_replay"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="18dp"
|
android:layout_marginStart="20dp"
|
||||||
android:layout_marginTop="23dp"
|
android:layout_marginTop="23dp"
|
||||||
android:text="新用户私聊回复率:"
|
android:text="新用户私聊回复率:"
|
||||||
android:textColor="#8A8CAB"
|
android:textColor="#8A8CAB"
|
||||||
@@ -141,32 +234,135 @@
|
|||||||
app:layout_constraintStart_toEndOf="@id/tv_replay"
|
app:layout_constraintStart_toEndOf="@id/tv_replay"
|
||||||
app:layout_constraintTop_toTopOf="@id/tv_replay" />
|
app:layout_constraintTop_toTopOf="@id/tv_replay" />
|
||||||
|
|
||||||
<ProgressBar
|
<View
|
||||||
android:id="@+id/pb_replay"
|
android:id="@+id/view_bg_replay_pb"
|
||||||
style="?android:attr/progressBarStyleHorizontal"
|
android:layout_width="261dp"
|
||||||
android:layout_width="260dp"
|
android:layout_height="9dp"
|
||||||
android:layout_height="16dp"
|
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:layout_marginEnd="3dp"
|
android:background="@drawable/anchor_grade_bg_pb"
|
||||||
android:max="100"
|
|
||||||
android:progress="0"
|
|
||||||
android:progressDrawable="@drawable/anchor_grade_bg_pb"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/tv_replay" />
|
app:layout_constraintTop_toBottomOf="@id/tv_replay" />
|
||||||
|
|
||||||
|
<ProgressBar
|
||||||
|
android:id="@+id/pb_replay"
|
||||||
|
style="?android:attr/progressBarStyleHorizontal"
|
||||||
|
android:layout_width="261dp"
|
||||||
|
android:layout_height="4dp"
|
||||||
|
android:max="100"
|
||||||
|
android:progress="66"
|
||||||
|
android:progressDrawable="@drawable/anchor_grade_bg_progress"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@id/view_bg_replay_pb"
|
||||||
|
app:layout_constraintEnd_toEndOf="@id/view_bg_replay_pb"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/view_bg_replay_pb"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/view_bg_replay_pb" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_replay_level_d"
|
||||||
|
android:layout_width="8dp"
|
||||||
|
android:layout_height="8dp"
|
||||||
|
android:src="@drawable/anchor_grade_ic_level_exceed"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@id/view_bg_replay_pb"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/view_bg_replay_pb"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/view_bg_replay_pb" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_replay_level_c"
|
||||||
|
android:layout_width="8dp"
|
||||||
|
android:layout_height="8dp"
|
||||||
|
android:layout_marginStart="63dp"
|
||||||
|
android:src="@drawable/anchor_grade_ic_level_exceed"
|
||||||
|
android:visibility="invisible"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@id/view_bg_replay_pb"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/view_bg_replay_pb"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/view_bg_replay_pb" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_replay_level_b"
|
||||||
|
android:layout_width="8dp"
|
||||||
|
android:layout_height="8dp"
|
||||||
|
android:layout_marginStart="126dp"
|
||||||
|
android:src="@drawable/anchor_grade_ic_level_exceed"
|
||||||
|
android:visibility="invisible"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@id/view_bg_replay_pb"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/view_bg_replay_pb"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/view_bg_replay_pb" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_replay_level_a"
|
||||||
|
android:layout_width="8dp"
|
||||||
|
android:layout_height="8dp"
|
||||||
|
android:layout_marginStart="189dp"
|
||||||
|
android:src="@drawable/anchor_grade_ic_level_exceed"
|
||||||
|
android:visibility="invisible"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@id/view_bg_replay_pb"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/view_bg_replay_pb"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/view_bg_replay_pb" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_replay_level_s"
|
||||||
|
android:layout_width="8dp"
|
||||||
|
android:layout_height="8dp"
|
||||||
|
android:src="@drawable/anchor_grade_ic_level_exceed"
|
||||||
|
android:visibility="invisible"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@id/view_bg_replay_pb"
|
||||||
|
app:layout_constraintEnd_toEndOf="@id/view_bg_replay_pb"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/view_bg_replay_pb" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_replay_curr_level"
|
android:id="@+id/tv_replay_d"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="5dp"
|
android:text="D"
|
||||||
android:includeFontPadding="false"
|
android:textColor="@color/color_babbcd"
|
||||||
android:textColor="@color/white"
|
android:textSize="10dp"
|
||||||
android:textSize="14dp"
|
app:layout_constraintEnd_toEndOf="@id/iv_replay_level_d"
|
||||||
app:layout_constraintBottom_toBottomOf="@id/pb_replay"
|
app:layout_constraintStart_toStartOf="@id/iv_replay_level_d"
|
||||||
app:layout_constraintStart_toStartOf="@id/pb_replay"
|
app:layout_constraintTop_toBottomOf="@id/view_bg_replay_pb" />
|
||||||
app:layout_constraintTop_toTopOf="@id/pb_replay"
|
|
||||||
tools:text="A" />
|
<TextView
|
||||||
|
android:id="@+id/tv_replay_c"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="C"
|
||||||
|
android:textColor="@color/color_babbcd"
|
||||||
|
android:textSize="10dp"
|
||||||
|
app:layout_constraintEnd_toEndOf="@id/iv_replay_level_c"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/iv_replay_level_c"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/view_bg_replay_pb" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_replay_b"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="B"
|
||||||
|
android:textColor="@color/color_babbcd"
|
||||||
|
android:textSize="10dp"
|
||||||
|
app:layout_constraintEnd_toEndOf="@id/iv_replay_level_b"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/iv_replay_level_b"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/view_bg_replay_pb" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_replay_a"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="A"
|
||||||
|
android:textColor="@color/color_babbcd"
|
||||||
|
android:textSize="10dp"
|
||||||
|
app:layout_constraintEnd_toEndOf="@id/iv_replay_level_a"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/iv_replay_level_a"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/view_bg_replay_pb" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_replay_s"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="S"
|
||||||
|
android:textColor="@color/color_babbcd"
|
||||||
|
android:textSize="10dp"
|
||||||
|
app:layout_constraintEnd_toEndOf="@id/iv_replay_level_s"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/iv_replay_level_s"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/view_bg_replay_pb" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_replay_gap"
|
android:id="@+id/tv_replay_gap"
|
||||||
@@ -174,31 +370,40 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="2dp"
|
android:layout_marginStart="2dp"
|
||||||
android:fontFamily="sans-serif"
|
android:fontFamily="sans-serif"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/color_babbcd"
|
||||||
android:textSize="10dp"
|
android:textSize="10dp"
|
||||||
app:layout_constraintBottom_toBottomOf="@id/pb_replay"
|
app:layout_constraintEnd_toEndOf="@id/tv_replay_s"
|
||||||
app:layout_constraintStart_toEndOf="@id/tv_replay_curr_level"
|
app:layout_constraintStart_toStartOf="@id/tv_replay_a"
|
||||||
app:layout_constraintTop_toTopOf="@id/pb_replay"
|
app:layout_constraintTop_toBottomOf="@id/view_bg_replay_pb"
|
||||||
tools:text="还差3333钻可完成" />
|
tools:text="还差10%" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_replay_next_level"
|
android:id="@+id/tv_satisfy_reply"
|
||||||
|
android:layout_width="260dp"
|
||||||
|
android:layout_height="16dp"
|
||||||
|
android:layout_marginTop="7dp"
|
||||||
|
android:background="@drawable/shape_black_10_100dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:includeFontPadding="false"
|
||||||
|
android:text="私聊回复人数未达最低标准,不显示回复率"
|
||||||
|
android:textColor="#ffbabbcd"
|
||||||
|
android:textSize="10sp"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/tv_replay"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/tv_replay" />
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.Group
|
||||||
|
android:id="@+id/group_reply"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="5dp"
|
app:constraint_referenced_ids="iv_replay_level_d,iv_replay_level_c,iv_replay_level_b,iv_replay_level_a,iv_replay_level_s,tv_replay_d,tv_replay_c,tv_replay_b,tv_replay_a,tv_replay_s,pb_replay,view_bg_replay_pb,tv_replay_gap" />
|
||||||
android:includeFontPadding="false"
|
|
||||||
android:textColor="@color/white"
|
|
||||||
android:textSize="14dp"
|
|
||||||
app:layout_constraintBottom_toBottomOf="@id/pb_replay"
|
|
||||||
app:layout_constraintEnd_toEndOf="@id/pb_replay"
|
|
||||||
app:layout_constraintTop_toTopOf="@id/pb_replay"
|
|
||||||
tools:text="S" />
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/iv_update_text"
|
android:id="@+id/iv_update_text"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="17dp"
|
android:layout_marginTop="28dp"
|
||||||
|
app:layout_goneMarginTop="42dp"
|
||||||
android:src="@drawable/anchor_grade_bg_update_text"
|
android:src="@drawable/anchor_grade_bg_update_text"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
@@ -605,4 +605,5 @@
|
|||||||
<color name="color_ffbc51">#FFFFBC51</color>
|
<color name="color_ffbc51">#FFFFBC51</color>
|
||||||
<color name="color_5FCCE4">#5FCCE4</color>
|
<color name="color_5FCCE4">#5FCCE4</color>
|
||||||
<color name="color_161958">#161958</color>
|
<color name="color_161958">#161958</color>
|
||||||
|
<color name="color_babbcd">#BABBCD</color>
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -8,5 +8,14 @@ data class AnchorGradeInfo(
|
|||||||
val targetDiamond: Int = 0,
|
val targetDiamond: Int = 0,
|
||||||
val targetReply: Double = 0.0,
|
val targetReply: Double = 0.0,
|
||||||
val uid: Int = 0,
|
val uid: Int = 0,
|
||||||
val inWhitelist: Boolean? = null
|
val inWhitelist: Boolean = false,
|
||||||
|
val levelSDiamond: Int = 0,
|
||||||
|
val levelSReply: Double = 0.0,
|
||||||
|
val levelADiamond: Int = 0,
|
||||||
|
val levelAReply: Double = 0.0,
|
||||||
|
val levelBDiamond: Int = 0,
|
||||||
|
val levelBReply: Double = 0.0,
|
||||||
|
val levelCDiamond: Int = 0,
|
||||||
|
val levelCReply: Double = 0.0,
|
||||||
|
val satisfyReply: Boolean = false,
|
||||||
)
|
)
|
Reference in New Issue
Block a user