タッチでボタンを押すアニメーションがあります。ユーザーが画面をスクロールしている間、押したままにできるようにしたい。これを行うために、基本的に画像を同じ状態に保ち、ACTION_MOVE で呼び出すアニメーションを作成しました。私の問題は、ボタンを離したときに ACTION_UP が呼び出されないことです。これにより、アニメーションがトリガーされ、ボタンがフルサイズに戻り、押されたように見えなくなります。ScrollView 内に相対レイアウト全体があります。何が起こっているのかまだ完全には理解できていませんが、ScrollView が onTouch イベントを「引き継いでいる」ようです。onTouchListener のコードは次のとおりです。
s104.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
clearAnim();
s104.setAnimation(animPressed);
s104.startAnimation(animPressed);
return true;
case MotionEvent.ACTION_MOVE:
s104.setAnimation(animDrag);
s104.startAnimation(animDrag);
return true;
case MotionEvent.ACTION_UP:
s104.setAnimation(animReleased);
s104.startAnimation(animReleased);
return true;
}
return false;
}
});
ACTION_UP が呼び出されない理由がわかりません。どんな助けでも大歓迎です。