2
我一直在寻找这个,但我没有找到。我已经有一个OnTouchListener
变量,它可以使按钮着色,并且它完美地工作,但我想让它在布局上工作。按下时按下线性/相对布局
这是我OnTouchListener
public static OnTouchListener buttonTinter = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent me) {
synchronized (lock) {
if (me.getAction() == MotionEvent.ACTION_DOWN) {
Drawable d = v.getBackground();
if (d != null) {
d.setColorFilter(Color.argb(255, 155, 155, 155),
PorterDuff.Mode.DARKEN);
}
return false;
} else if (me.getAction() == MotionEvent.ACTION_UP
|| me.getAction() == MotionEvent.ACTION_CANCEL) {
Drawable d = v.getBackground();
if (d != null) {
d.setColorFilter(Color.argb(255, 255, 255, 255),
PorterDuff.Mode.MULTIPLY);
}
if (SystemClock.elapsedRealtime() - mLastClickTime < 300) {
return true;
}
mLastClickTime = SystemClock.elapsedRealtime();
return false;
}
return false;
}
}
};
的和时间部分仅仅是为了避免在同一时间接触2个按钮的错误。所以,它在Buttons或ImageButtons中可以很好地工作,但是当我将它设置为RelativeLayouts或LinearLayouts(没有错误,它只是忽略了代码)时没有任何反应。有没有人有任何建议?
SOLUTION:
布局的背景必须是绘制,并不出彩
它已经可以点击了,我已经设置好了,但没有任何反应。 –