| | |
| | | package com.example.firstapp.ui.vip |
| | | |
| | | import android.graphics.Color |
| | | import android.graphics.drawable.Drawable |
| | | import androidx.fragment.app.viewModels |
| | | import android.os.Bundle |
| | |
| | | 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 |
| | |
| | | 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() { |
| | | |
| | |
| | | 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) |
| | |
| | | // 绑定头像 |
| | | |
| | | Glide.with(this) |
| | | .load("http://192.168.1.201:9000/sms/avatar/avatar.jpg") |
| | | .load(viewModel.cover) |
| | | .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?, |
| | |
| | | // 绑定会员徽章 |
| | | |
| | | 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?, |
| | |
| | | }) |
| | | .into(binding.memberImageView) |
| | | |
| | | |
| | | // 监听 cover 变化 |
| | | viewLifecycleOwner.lifecycleScope.launch { |
| | | viewModel.cover.collect { coverUrl -> |
| | | Glide.with(this@MemberInfoCardFragment) |
| | | .load(coverUrl) |
| | | .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 |
| | | } |
| | | |
| | | |
| | | } |