我创建了一个简单的 Animation 派生类,并向 View 添加了一个 onclick 监听器(在本例中为 LinearLayout,只是为了快速验证概念),该监听器在对象上调用 startAnimation(将我的实例传递给它)类(class))。在我的 Animation 类中,我只是获取对 Translation 的 Matrix 对象的引用并调用 setTranslate。因此,翻译看起来不错,但如果我尝试再次单击我现在看到对象的位置(翻译后的位置),则没有任何反应。如果我回到原来的位置并单击,它会从相同的起点重复相同的动画。我的印象是翻译实际上会翻译对象本身,而不仅仅是视觉表示。有没有办法做我期望在动画课上发生的事情?或者,还有其他一些标准方法可以做这种事情吗?任何洞察为什么这种行为是这样的?谢谢。
最佳答案
没有文档说明它只修改矩阵。如果你想真正改变系统对 View 的解释的其余部分,设置一个动画监听器来设置动画结束时的位置。
关于java - Matrix.setTranslate() 只平移View 的视觉表面而不平移可点击区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2113708/