我有一个按钮,如果你按住手机振动,如果它通过1.5秒改变背景颜色。 但我希望当按下第一个按钮时将颜色变为绿色,如果再次按下则更改为红色,依次按下按钮的时间。
我的代码:
$('.id').each( function( index ) {
$(this).addClass('item-' + index);
});
问题是这两种颜色不起作用,只能起作用一种颜色,我想知道每次按下按钮时如何制作不同的颜色,红色和绿色。
答案 0 :(得分:0)
在你的听众中:
btn.setOnTouchListener(new OnTouchListener() {
....
ColorDrawable color = (ColorDrawable) yourView.getBackground();
int colorId = color.getColor();
if(colorId == Color.GREEN)
mealLayout.setBackgroundColor(Color.RED);
else if(colorId == Color.RED)
mealLayout.setBackgroundColor(Color.GREEN);
else
//If not green or red set an optional color
....
试试这个。我唯一不确定的是与colorId和Color.x的比较。您可能需要以不同的方式对此进行比较。尝试记录colorId以查看它是什么让你从那里找到一种正确的方法来将它与一些颜色Color.x进行比较。
你也可以创建一个布尔值,并在你的监听器中检查它是否为假:将背景设置为绿色并将布尔值设置为true。如果布尔值为true,则相同:将background设置为red,将boolean设置为false。
答案 1 :(得分:0)
谢谢,但我已经解决了这个问题:
if (action == MotionEvent.ACTION_DOWN) {
esperarYCerrar(MILISEGUNDOS_ESPERA);
vibrator.vibrate(1500);
} else if (action == MotionEvent.ACTION_UP) {
vibrator.cancel();
}
感谢所有DadoZolic。 我想知道最后一件事,除了改变背景外,很容易添加不同的图像?