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); } } }