gpt4 book ai didi

android - 动画期间的 onClick on View 不起作用

转载 作者:行者123 更新时间:2023-11-30 00:40:56 25 4
gpt4 key购买 nike

在处理带有各种动画的项目时,发现在动画时无法单击“ View ”。

onClick 仅适用于动画的结束点或开始,但不适用于动画期间。

比方说,我有一个扩展了一些自定义 ImageView 的 Car 对象。我想让汽车在屏幕上移动。目的是让汽车在移动时可以点击,因此在驾驶动画时用户可以点击它来执行一些 Action 。

public class Car extends GraphicObject{

public Car(Context context, int resourceImage, int rawHeight, int rawWidth) {
super(context, resourceImage, rawHeight, rawWidth);
setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Log.d(TAG, "Works while animated.");

}
});
}

public void startMoving(int duration) {
Animation animation = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, +7f,
Animation.RELATIVE_TO_SELF, -7f,
Animation.RELATIVE_TO_SELF, 0f,
Animation.RELATIVE_TO_SELF, 0f
);
animation.setRepeatCount(Animation.INFINITE);
animation.setRepeatMode(Animation.RESTART);
animation.setDuration(duration);

startAnimation(animation);
}

}

上面的代码仅在汽车应该完成过渡的区域执行onClick。不幸的是,在过渡期间没有任何效果。

是否有任何可能的解决方案使对象在动画过渡期间可点击?我真的不想在没有动画的情况下移动对象,因为这会给我带来很多不便。

最佳答案

感谢pskink的指教,解决方案是使用 Animator 而不是 Animation。 Animator 中解决了与动画期间无法在 View 上执行 onClick 相关的主要问题。这会很有用:

https://android-developers.googleblog.com/2011/05/introducing-viewpropertyanimator.html

https://developer.android.com/guide/topics/graphics/prop-animation.html

请注意:如果您在三星设备上测试您的应用程序并且动画不起作用,请转到开发人员设置并将动画持续时间比例设为最小 1X。在我的例子中,它阻止了查看应用程序中使用的动画。

关于android - 动画期间的 onClick on View 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42594845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com