android - 动画可防止点击事件

时间:2011-11-09 23:22:59

标签: android

我是Android游戏开发新手。

我有一个游戏,我需要点击移动按钮或TextViews(不重要)。 我扩展了FrameLayout类并添加了一些Buttons(通过addView方法)。然后我尝试使用TranslateAnimation,但似乎它没有更新click事件的坐标(即当我点击新位置上的移动按钮时,事件没有处理,但当我点击原点时(它有开始移动),即使按钮离开这个地方,事件也会捕获。)

问题:如何创建处理点击事件的可移动标签(或按钮)?我是否需要使用热门测试等技巧?或者,我可能会使用完全错误的游戏方法(例如,我需要绘制文本而不是在布局中添加视图)?如果你能提出另一个解决方案,我会很高兴。

1 个答案:

答案 0 :(得分:2)

这是Android中动画的限制。他们修复了Android 3.0中的问题。请阅读此处了解更多信息http://android-developers.blogspot.com/2011/02/animation-in-honeycomb.html

摘录:

“最后,之前的动画改变了目标对象的视觉外观......但它们实际上并没有改变对象本身。你可能遇到过这个问题。让我们说你要移动一个按钮从屏幕的一侧到另一侧。您可以使用 TranslateAnimation 这样做,按钮将很乐意滑动到屏幕的另一侧。当动画是完成后,它会很乐意重新回到原来的位置。所以你在动画上找到了setFillAfter(true)方法并再次尝试。这次按钮保持在动画的位置。你可以通过点击它 - 嘿!按钮如何不点击?问题是动画会改变按钮的绘制位置,而不是按钮实际存在于容器内的位置。如果你想要点击按钮,你必须点击它曾经居住的位置。或者,更有效我们必须编写代码,以便在动画完成时实际更改布局中按钮的位置。“