Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在动态imageview上设置setOnClickListener_Android_Imageview_Android Animation_Onclicklistener - Fatal编程技术网

Android 如何在动态imageview上设置setOnClickListener

Android 如何在动态imageview上设置setOnClickListener,android,imageview,android-animation,onclicklistener,Android,Imageview,Android Animation,Onclicklistener,在Android Studio中工作时,我需要在我的应用程序中添加一个imageview上的点击监听器,该监听器具有特定动画。这是我在MainActivity中的代码: myImage.startAnimation(myAnimation); myImage.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //DO SOMETHING } }); myA

在Android Studio中工作时,我需要在我的应用程序中添加一个imageview上的点击监听器,该监听器具有特定动画。这是我在MainActivity中的代码:

myImage.startAnimation(myAnimation);
myImage.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        //DO SOMETHING
    } 
});
myAnimation来自一个XML in-anim文件夹,该文件夹执行转换动画:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
    android:interpolator="@android:anim/accelerate_interpolator"
    android:repeatCount="infinite"
    android:repeatMode="reverse"
    android:fromYDelta="0%p"
    android:toYDelta="40%p"
    android:duration="1000"/>
</set>

尽管此单击侦听器设置在布局(activity_main.xml)上具有图像的空间上,并且不跟随插入图像中的动画,但它仍然可以正常工作。如果单击布局中属于图像的空间,则即使由于动画的原因图像不存在,单击侦听器也会启动

是否有一种方式可以将单击侦听器附加到运动中的imageview


谢谢

之所以会发生这种情况,是因为您使用的xml Translate动画并没有真正为视图的属性设置动画,它只是移动屏幕上的像素,因此看起来好像它已经改变了位置,这就是为什么OnClickListener在视图的原始位置上仍然处于活动状态,因为安卓认为视图从未真正移动过。 使用简单的解决方案甚至更好。两者都将设置视图属性的动画,因此OnClicklistener也将使用它更改其位置