Linjiajia
2023-10-26 ecaf8069072e71db4bff94671e72764b211d6af1
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
package com.android.app_base.base.adapter.databinding;
 
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.text.TextUtils;
import android.util.Base64;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
 
import androidx.databinding.BindingAdapter;
import androidx.databinding.InverseBindingAdapter;
 
import com.android.app_base.base.BaseConfig;
import com.android.app_base.utils.GlideUtil;
 
import java.math.BigDecimal;
 
/**
 * @author Ljj
 * @date 2023.03.24. 17:09
 * @desc ImageView的 BindingAdapter
 */
public class ImageViewAdapter {
    @BindingAdapter({"imageUrl"})
    public static void loadUrlImage(ImageView imageView, String url) {
        if (TextUtils.isEmpty(url)) {
            return;
        }
        if (url.contains("profile/upload")) {//如果是上传到服务器的图片
            //只取profile/upload以后的部分
            url = url.substring(url.indexOf("profile/upload"));
            url = BaseConfig.BASE_URL_DOMAIN + "/" + url;
        }
        GlideUtil.loadImage(url, imageView);
    }
    @BindingAdapter({"imageBase64"})
    public static void setBase64Image(ImageView imageView, String imageString) {
        if (imageString == null){
            return;
        }
        if (imageString.contains(",")){
            imageString = imageString.split(",")[1];
        }
        byte[] decodedString = Base64.decode(imageString, Base64.DEFAULT);
        Bitmap bitmap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
        imageView.setImageBitmap(bitmap);
    }
 
 
    @BindingAdapter(value = {"visibility_text","needPlaceholder"},requireAll = false)
    public static void setVisibilityByText(ImageView imageView,String text,boolean needPlaceholder){
        if (TextUtils.isEmpty(text)){
            if (needPlaceholder){
                imageView.setVisibility(View.INVISIBLE);
            }else {
                imageView.setVisibility(View.GONE);
            }
        }else {
            imageView.setVisibility(View.VISIBLE);
        }
    }
 
 
}