package com.application.zhangshi_app_android.adapter.databinding; import android.graphics.drawable.Drawable; import android.text.TextUtils; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import androidx.appcompat.content.res.AppCompatResources; import androidx.core.content.res.ResourcesCompat; import androidx.databinding.BindingAdapter; import androidx.databinding.InverseBindingAdapter; import androidx.databinding.InverseBindingListener; import com.application.zhangshi_app_android.MyApplication; import com.application.zhangshi_app_android.R; import java.math.BigDecimal; /** * @author Ljj * @date 2023.07.23. 19:19 * @desc */ public class ImageViewAdapter { /** * 根据 int 状态值为 imageView设置背景 * @param state 1 选中 0 未选中 */ @BindingAdapter("select_state") public static void setSelectState(ImageView imageView, int state) { if (state == 1){ imageView.setBackgroundResource(R.drawable.ic_radio_button_selected); }else { imageView.setBackgroundResource(R.drawable.ic_radio_button_unselected); } } /** * 根据imageView的背景获取选中状态 * @return 1 选中 0 未选中 */ @InverseBindingAdapter(attribute = "select_state") public static int getSelectState(ImageView imageView) { Drawable drawable = AppCompatResources.getDrawable(imageView.getContext(),R.drawable.ic_radio_button_selected); if (imageView.getBackground().getConstantState().equals(drawable.getConstantState())) { return 1; } else{ return 0; } } /** * 设置选中状态改变监听 */ @BindingAdapter("select_stateAttrChanged") public static void setSelectStateAttrChanged(ImageView imageView, final InverseBindingListener listener) { imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Drawable drawable = AppCompatResources.getDrawable(imageView.getContext(),R.drawable.ic_radio_button_selected); boolean isSelect = imageView.getBackground().getConstantState().equals(drawable.getConstantState()); if (isSelect) { imageView.setBackgroundResource(R.drawable.ic_radio_button_unselected); } else{ imageView.setBackgroundResource(R.drawable.ic_radio_button_selected); } listener.onChange(); } }); //默认一开始不可点击 imageView.setClickable(false); } }