Android 如何在动态imageview上设置setOnClickListener
在Android Studio中工作时,我需要在我的应用程序中添加一个imageview上的点击监听器,该监听器具有特定动画。这是我在MainActivity中的代码: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
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也将使用它更改其位置