1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
package com.example.firstapp.ui.vip
 
import android.graphics.drawable.Drawable
import androidx.fragment.app.viewModels
import android.os.Bundle
import android.util.Log
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import androidx.databinding.DataBindingUtil
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.RequestListener
import com.bumptech.glide.request.target.Target
import com.bumptech.glide.load.DataSource
import com.example.firstapp.R
import com.example.firstapp.databinding.FragmentMemberInfoCardBinding
 
class MemberInfoCardFragment : Fragment() {
 
 
    companion object {
        fun newInstance() = MemberInfoCardFragment()
    }
 
    private val viewModel: MemberInfoCardViewModel by viewModels()
 
    // 绑定变量
    private var _binding: FragmentMemberInfoCardBinding? = null
    private val binding get() = _binding!!
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
 
    }
 
    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View {
        // 使用 DataBindingUtil.inflate 来绑定布局
        _binding = FragmentMemberInfoCardBinding.inflate(inflater, container, false)
        binding.viewModel = viewModel
        binding.lifecycleOwner = this
 
        // 绑定头像
 
        Glide.with(this)
            .load("http://192.168.1.201:9000/sms/avatar/avatar.jpg")
            .transform(RoundedCorners(100))  // 设置圆角
            .error(R.drawable.error_placeholder) // 如果加载失败,显示占位图
            .listener(object : RequestListener<Drawable> {
                override fun onResourceReady(
                    resource: Drawable?,
                    model: Any?,
                    target: Target<Drawable>?,  // 正确使用 Target 作为泛型参数
                    dataSource: DataSource?,  // 导入正确的 DataSource
                    isFirstResource: Boolean
                ): Boolean {
                    Log.d("Glide", "Image loaded successfully")
                    return false
                }
 
                override fun onLoadFailed(
                    e: GlideException?,
                    model: Any?,
                    target: Target<Drawable>?,  // 正确使用 Target 作为泛型参数
                    isFirstResource: Boolean
                ): Boolean {
                    Log.e("Glide", "Image load failed", e)
                    return false
                }
            })
            .into(binding.memberAvatarView)
 
 
        // 绑定会员徽章
 
        Glide.with(this)
            .load("http://192.168.1.201:9000/sms/member/vip_no.png")
            .transform(RoundedCorners(100))  // 设置圆角
            .error(R.drawable.error_placeholder) // 如果加载失败,显示占位图
            .listener(object : RequestListener<Drawable> {
                override fun onResourceReady(
                    resource: Drawable?,
                    model: Any?,
                    target: Target<Drawable>?,  // 正确使用 Target 作为泛型参数
                    dataSource: DataSource?,  // 导入正确的 DataSource
                    isFirstResource: Boolean
                ): Boolean {
                    Log.d("Glide", "Image loaded successfully")
                    return false
                }
 
                override fun onLoadFailed(
                    e: GlideException?,
                    model: Any?,
                    target: Target<Drawable>?,  // 正确使用 Target 作为泛型参数
                    isFirstResource: Boolean
                ): Boolean {
                    Log.e("Glide", "Image load failed", e)
                    return false
                }
            })
            .into(binding.memberImageView)
 
        return binding.root
    }
 
 
    override fun onDestroyView() {
        super.onDestroyView()
        _binding = null
    }
}