方法3、监听TouchEvent ,使用ColorFilter :
定义两个数组:
public final float[] BTN_PRESSED = new float[] {
2, 0, 0, 0, 2,
0, 2, 0, 0, 2,
0, 0, 2, 0, 2,
0, 0, 0, 1, 0,
};
public final float[] BTN_NOPRESSED = new float[] {
1, 0, 0, 0, 0,
0, 1, 0, 0, 0,
0, 0, 1, 0, 0,
0, 0, 0, 1, 0,
};
//在点击事件时处理
private OnTouchListener mOnTouchListener = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if (MotionEvent.ACTION_DOWN == event.getAction()) {
v.getBackground().setColorFilter(
new ColorMatrixColorFilter(BTN_PRESSED ));
v.setBackgroundDrawable(v.getBackground());
} else {
v.getBackground().setColorFilter(
new ColorMatrixColorFilter(BTN_NOPRESSED ));
v.setBackgroundDrawable(v.getBackground());
}
return false;
}
};
btn.setOnTouchListener(mOnTouchListener);
本文介绍了一种通过监听TouchEvent并使用ColorFilter实现按钮按下时颜色变化的方法。具体实现包括定义两种状态下的颜色矩阵,以及根据按钮的不同状态切换颜色效果。
4112

被折叠的 条评论
为什么被折叠?



