Matrix.setTranslate()只翻译视图的可视表面而不是可点击区域?

时间:2010-01-21 23:09:27

标签: java android animation

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

2 个答案:

答案 0 :(得分:0)

没有文档声明它只修改矩阵。如果要实际更改系统对视图的其余解释,请设置动画侦听器,以在动画结束时设置位置。

答案 1 :(得分:0)

您可以使用View.setTranslationX()和View.setTranslationY(),这些应该在Android Honeycomb中以及之后执行:)