私のアプリケーションでは、ボタンやボタンとして機能する他のビューに簡単なアニメーションを追加したいと思います。
これを行うには、カスタムonTouchListenerをすべてのビューに設定し、それらに対してstartAnimationを呼び出します。
私のonTouchメソッドは次のようになります。
public boolean onTouch(View v, MotionEvent event) {
// Only show animation when enabled.
if (v.isEnabled()) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
v.startAnimation(shrink);
break;
case MotionEvent.ACTION_UP:
v.startAnimation(grow);
break;
}
}
return v.onTouchEvent(event);
}
これは、ユーザーがボタンを押している間にビューのサイズが小さくなり、ユーザーが指を離すと元のサイズに戻るため、問題なく機能します。
ただし、何らかの理由で、タッチしたボタンの近くにある他のボタンもUPイベントを取得するため、小さなアニメーションのちらつきも発生します。
なぜこれが、そしてもっと重要なことに、この迷惑な行動を防ぐにはどうすればよいですか?
編集:明確にするために。ネイバービューも同じリスナーインスタンスに登録されていますが、指で触れられていません。