注意,这个需求的Image不是固定的,而是针对当前ImageView上的图片。也就是说用Selector的做法是不行的。
public class PressedRoundImageView extends ImageView {
private boolean showZheZhao = false;
public PressedRoundImageView(Context context) {
super(context);
}
public PressedRoundImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public PressedRoundImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// 如果启用了,则 加上一层遮罩
if (isPressed() && showZheZhao) {
canvas.drawColor(0x19000000);
}
}
@Override
protected void dispatchSetPressed(boolean pressed) {
super.dispatchSetPressed(pressed);
invalidate();
}
public void setZheZhao(boolean flag) {
this.showZheZhao = flag;
}
}
public class PressedRoundImageView extends ImageView {
private boolean showZheZhao = false;
public PressedRoundImageView(Context context) {
super(context);
}
public PressedRoundImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public PressedRoundImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// 如果启用了,则 加上一层遮罩
if (isPressed() && showZheZhao) {
canvas.drawColor(0x19000000);
}
}
@Override
protected void dispatchSetPressed(boolean pressed) {
super.dispatchSetPressed(pressed);
invalidate();
}
public void setZheZhao(boolean flag) {
this.showZheZhao = flag;
}
}
public class PressedRoundImageView extends ImageView { private boolean showZheZhao = false; public PressedRoundImageView(Context context) { super(context); } public PressedRoundImageView(Context context, AttributeSet attrs) { super(context, attrs); } public PressedRoundImageView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // 如果启用了,则 加上一层遮罩 if (isPressed() && showZheZhao) { canvas.drawColor(0x19000000); } } @Override protected void dispatchSetPressed(boolean pressed) { super.dispatchSetPressed(pressed); invalidate(); } public void setZheZhao(boolean flag) { this.showZheZhao = flag; } }