From 66a4a5c3aa78869a3c51e79f2a6a610c99016c24 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期三, 16 四月 2025 08:45:18 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
app/src/main/java/com/example/firstapp/ui/vip/MemberInfoCardFragment.kt | 68 ++++++++++++++++++++++++++++++----
1 files changed, 60 insertions(+), 8 deletions(-)
diff --git a/app/src/main/java/com/example/firstapp/ui/vip/MemberInfoCardFragment.kt b/app/src/main/java/com/example/firstapp/ui/vip/MemberInfoCardFragment.kt
index 3671d10..2166148 100644
--- a/app/src/main/java/com/example/firstapp/ui/vip/MemberInfoCardFragment.kt
+++ b/app/src/main/java/com/example/firstapp/ui/vip/MemberInfoCardFragment.kt
@@ -1,5 +1,6 @@
package com.example.firstapp.ui.vip
+import android.graphics.Color
import android.graphics.drawable.Drawable
import androidx.fragment.app.viewModels
import android.os.Bundle
@@ -8,8 +9,7 @@
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.ImageView
-import androidx.databinding.DataBindingUtil
+import androidx.lifecycle.lifecycleScope
import com.bumptech.glide.Glide
import com.bumptech.glide.load.engine.GlideException
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
@@ -17,7 +17,9 @@
import com.bumptech.glide.request.target.Target
import com.bumptech.glide.load.DataSource
import com.example.firstapp.R
+
import com.example.firstapp.databinding.FragmentMemberInfoCardBinding
+import kotlinx.coroutines.launch
class MemberInfoCardFragment : Fragment() {
@@ -26,11 +28,12 @@
fun newInstance() = MemberInfoCardFragment()
}
- private val viewModel: MemberInfoCardViewModel by viewModels()
+ val viewModel: MemberInfoCardViewModel by viewModels()
// 绑定变量
private var _binding: FragmentMemberInfoCardBinding? = null
private val binding get() = _binding!!
+
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -49,9 +52,11 @@
// 绑定头像
Glide.with(this)
- .load("http://192.168.1.201:9000/sms/avatar/avatar.jpg")
+ .load(viewModel.cover)
+ .circleCrop()
.transform(RoundedCorners(100)) // 设置圆角
- .error(R.drawable.error_placeholder) // 如果加载失败,显示占位图
+// .error(R.drawable.error_placeholder) // 如果加载失败,显示占位图
+ .error(R.mipmap.avatar_default)
.listener(object : RequestListener<Drawable> {
override fun onResourceReady(
resource: Drawable?,
@@ -80,9 +85,10 @@
// 绑定会员徽章
Glide.with(this)
- .load("http://192.168.1.201:9000/sms/member/vip_no.png")
+ .load(viewModel.vipCover)
.transform(RoundedCorners(100)) // 设置圆角
- .error(R.drawable.error_placeholder) // 如果加载失败,显示占位图
+// .error(R.drawable.error_placeholder) // 如果加载失败,显示占位图
+ .error(R.mipmap.vip_no)
.listener(object : RequestListener<Drawable> {
override fun onResourceReady(
resource: Drawable?,
@@ -107,12 +113,58 @@
})
.into(binding.memberImageView)
+
+ // 监听 cover 变化
+ viewLifecycleOwner.lifecycleScope.launch {
+ viewModel.cover.collect { coverUrl ->
+ Glide.with(this@MemberInfoCardFragment)
+ .load(coverUrl)
+ .circleCrop()
+ .transform(RoundedCorners(100))
+ .error(R.drawable.error_placeholder)
+ .into(binding.memberAvatarView)
+ }
+ }
+
+ // 监听 vipCover 变化
+ viewLifecycleOwner.lifecycleScope.launch {
+ viewModel.vipCover.collect { vipCoverUrl ->
+ Glide.with(this@MemberInfoCardFragment)
+ .load(vipCoverUrl)
+ .transform(RoundedCorners(100))
+ .error(R.drawable.error_placeholder)
+ .into(binding.memberImageView)
+
+ }
+ }
+
+ // 监听 background 变化
+ viewLifecycleOwner.lifecycleScope.launch {
+ viewModel.background.collect { backgroundColor ->
+// binding.memberCardCardView.setBackgroundColor(Color.parseColor(backgroundColor))
+ binding.memberCardCardView.setBackgroundResource(backgroundColor)
+ }
+ }
+
+ viewLifecycleOwner.lifecycleScope.launch {
+ viewModel.phoneTextColor.collect { color ->
+ binding.phoneNumberText.setTextColor(Color.parseColor(color))
+ }
+ }
+
+ viewLifecycleOwner.lifecycleScope.launch {
+ viewModel.memberStatusColor.collect { color ->
+ binding.memberStatus.setTextColor(Color.parseColor(color))
+ }
+ }
+
return binding.root
}
-
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
+
+
}
\ No newline at end of file
--
Gitblit v1.9.3