在动画ImageView时,Android onClick()无法正常工作

时间:2015-12-02 17:13:00

标签: java android xml animation

我正在尝试在图像视图上设置一个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();

}

1 个答案:

答案 0 :(得分:1)

据我了解android动画,当动画开始时,视图的可触摸边界会立即移动到目标位置。当您的视图正在动画时,您的onClick事件不会被触发,因为可触摸边界已经在最终位置。

这个SO question讨论了在动画制作动画时更新可触摸边界的一些方法。

你应该研究另一个link