2010-01-21 77 views
4

我创建了一个简单的动画派生类,并在视图中添加了一个onclick监听器(在本例中是一个LinearLayout,用于快速验证概念),它在对象上调用startAnimation(将其传递给我的类的一个实例)。在我的Animation类中,我只需获得对Translation的Matrix对象的引用并调用setTranslate。所以,翻译看起来不错,但是如果我尝试再次点击我现在看到的对象(翻译的位置),则什么都不会发生。如果我回到原始位置并单击,它将从相同的起点重复相同的动画。我的印象是翻译实际上会翻译对象本身,而不仅仅是视觉表现。有没有办法做到我期望在动画课上发生的事情?或者,有没有其他的标准方式来做这种事情?深入了解为什么这种行为是这样的?谢谢。Matrix.setTranslate()仅转换视图的可视表面而不是可点击区域?

回答

0

不在文档中指出它只修改矩阵。如果您想要实际更改系统对该视图的其余解释,请设置一个动画侦听器,该动画侦听器在动画结束时设置位置。

0

你可以使用View.setTranslationX()和View.setTranslationY(),那些应该在Android Honeycomb中做诡计,然后:)