我想製作一個ImageView?當我觸摸它,它改變的背景下,當我拖動手指遠的它,它變得不正常,我不知道該怎麼辦,謝謝完成觸摸後ImageView
imgButton.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
cmp++;
txt2.setText(" " + cmp);
//Quant on touche l'image :
if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
imgButton.getDrawable().setColorFilter(0x77000000, PorterDuff.Mode.SRC_ATOP);
}
// si Je bouge le dois sur l'image et ....
if (event.getActionMasked() == MotionEvent.ACTION_MOVE) {
//... et que le doit quitte l'image
if (event.getX() < 0 || event.getX() > v.getWidth() || event.getY() < 0 || event.getY() > v.getHeight()) {
imgButton.getDrawable().setColorFilter(0x00000001, PorterDuff.Mode.SRC_ATOP);
}
if (event.getX() > 0 && event.getX() < v.getWidth() && event.getY() > 0 && event.getY() < v.getHeight()) {
// ... et que le doit revient vers L'image
imgButton.getDrawable().setColorFilter(0x77000000, PorterDuff.Mode.SRC_ATOP);
}
}
// Si je lève le doits et...
if (event.getActionMasked() == MotionEvent.ACTION_UP) {
// .... sur l'image :
if (event.getX() > 0 && event.getX() < v.getWidth() && event.getY() > 0 && event.getY() < v.getHeight()) {
//Finger back to the view
imgButton.getDrawable().setColorFilter(0x00000001, PorterDuff.Mode.SRC_ATOP);
Intent i = new Intent(MainActivity.this, game.class);
startActivity(i);
}
}
return true;
}
});
不清楚。爲什麼不使用通常的點擊監聽器呢? –
這就是我想要做的: 我有圖像視圖,當我觸摸它時,它會像更改ColorFilter一樣生效(通知用戶該按鈕被觸摸),並且當我拖動手指遠離圖像時,它變得正常(通知用戶該圖像沒有被觸摸),並再次當我拖動手指靠近imgView它再次採取的效果, –
在我看來,你確實想要一個狀態列表選擇器,在正常的點擊。沒有「拖動,關閉,遠,觸摸,非觸摸......」。只需點擊或不點擊。通過視覺反饋。 –