我正在尝试在图像视图上设置一个on ClickListener,因为它是动画。 ImageView正从屏幕底部移动到顶部。但是,当imageView位于屏幕底部并触摸屏幕顶部时,可以单击它。我只想要点击图像视图而不是其路径中的其他位置。
xml中的动画
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:fillAfter="true">
<translate
android:fromYDelta="75%p"
android:toYDelta="0%p"
android:duration="5000"
android:repeatCount="infinite"/>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="5000"
android:fromXScale="1.4"
android:fromYScale="1.4"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale=".6"
android:toYScale=".6"
android:repeatCount="infinite">
</scale>
</set>
代码
mBalloonPortrait1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MediaPlayer mediaPlayer = MediaPlayer.create(MainBalloonActivity.this,
mBalloonArrayList.get(0).getAudioId());
mediaPlayer.start();
balloonFallAndFloat(mBalloonPortrait1);
}
});
private void balloonFallAndFloat(final ImageView balloon){
Thread thread = new Thread() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
balloon.startAnimation(AnimationUtils.loadAnimation(
getApplicationContext(), R.anim.start_game_animation));
}
});
}
};
thread.start();
}
答案 0 :(得分:1)
据我了解android动画,当动画开始时,视图的可触摸边界会立即移动到目标位置。当您的视图正在动画时,您的onClick事件不会被触发,因为可触摸边界已经在最终位置。
这个SO question讨论了在动画制作动画时更新可触摸边界的一些方法。
你应该研究另一个link。