package com.netease.nim.uikit.common.ui.imageview;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.ImageButton;
/**
* 选中图片控件
*/
public class CheckedImageButton extends ImageButton {
private boolean checked;
private int normalBkResId;
private int checkedBkResId;
private Drawable normalImage;
private Drawable checkedImage;
private int leftPadding, topPadding, rightPadding, bottomPadding;
public CheckedImageButton(Context context) {
super(context);
}
public CheckedImageButton(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CheckedImageButton(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public void setPaddingValue(int value) {
setPaddingValue(value, value, value, value);
}
public void setPaddingValue(int left, int top, int right, int bottom) {
leftPadding = left;
topPadding = top;
rightPadding = right;
bottomPadding = bottom;
setPadding(leftPadding, topPadding, rightPadding, bottomPadding);
}
public boolean isChecked() {
return checked;
}
public void setChecked(boolean push) {
this.checked = push;
Drawable image = push ? checkedImage : normalImage;
if (image != null) {
updateImage(image);
}
int background = push ? checkedBkResId : normalBkResId;
if (background != 0) {
updateBackground(background);
}
}
public void setNormalBkResId(int normalBkResId) {
this.normalBkResId = normalBkResId;
updateBackground(normalBkResId);
}
public void setCheckedBkResId(int checkedBkResId) {
this.checkedBkResId = checkedBkResId;
}
public void setNormalImageId(int normalResId) {
normalImage = getResources().getDrawable(normalResId);
updateImage(normalImage);
}
public void setCheckedImageId(int pushedResId) {
checkedImage = getResources().getDrawable(pushedResId);
}
public void setNormalImage(Bitmap bitmap) {
this.normalImage = new BitmapDrawable(getResources(), bitmap);
updateImage(this.normalImage);
}
public void setCheckedImage(Bitmap bitmap) {
this.checkedImage = new BitmapDrawable(getResources(), bitmap);
}
private void updateBackground(int resId) {
setBackgroundResource(resId);
setPadding(leftPadding, topPadding, rightPadding, bottomPadding);
// int padding = ScreenUtil.dip2px(7);
// setPadding(padding, padding, padding, padding);
}
private void updateImage(Drawable drawable) {
// setScaleType(ScaleType.FIT_CENTER);
setImageDrawable(drawable);
}
}