之前看到别人如下实现图片按钮的点击效果,效果是有,这个是按照矩阵原理来实现的,但点击后,可能会出现灰色或亮灰效果不变,图片按钮看着比较脏。
public static final OnTouchListener TouchLight = new OnTouchListener() {
public final float[] BT_SELECTED = new float[] {
1,0,0,0,50,
0,1,0,0,50,
0,0,1,0,50,
0,0,0,1,0};
public final float[] BT_NOT_SELECTED = new float[] {
1,0,0,0,0,
0,1,0,0,0,
0,0,1,0,0,
0,0,0,1,0};
@SuppressWarnings("deprecation")
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
v.getBackground().setColorFilter(
new ColorMatrixColorFilter(BT_SELECTED));
v.setBackgroundDrawable(v.getBackground());
} else if (event.getAction() == MotionEvent.ACTION_UP) {
v.getBackground().setColorFilter(
BT_NOT_SELECTED);
v.setBackgroundDrawable(v.getBackground());
}
return false;
}
};
如下改进后即可实现, 将松开函数下 v.getBackground().setColorFilter(BT_NOT_SELECTED);改为v.getBackground().setColorFilter(null);或者
v.getBackground().clearColorFilter();即可轻松去除点击后变灰的效果。实现复原。