Android 动画 - 按钮保持可点击状态

Posted

技术标签:

【中文标题】Android 动画 - 按钮保持可点击状态【英文标题】:Android Animation - Button stays clickable 【发布时间】:2013-08-22 09:34:40 【问题描述】:

我正在制作一个游戏,其中我有 5 个buttons,看起来像云,从“天空”落下。 这意味着当我的活动开始时,看不到“云”,因为marginTop 设置为-100dp。 从那个位置,他们开始跌倒,直到他们迷失在屏幕的底部。

问题是,我需要那些buttons 在动画过程中是可点击的。

到目前为止,我找到了一些关于如何在动画结束后使 buttons 可点击的文档。但我不需要那个。 我需要能够通过动画时间本身点击按钮。

注意:我需要一些适用于 3.0 之前版本的东西。

有人有任何文档或示例或任何东西的链接吗?

【问题讨论】:

【参考方案1】:

经过一番研究,我发现有两种类型的动画:

视图动画和属性动画。

视图动画只能动画视图对象。它还缺少各种动画,因为它只能做缩放、旋转、移动等操作……例如,它不能改变背景颜色。 另外,View Animation 的缺点是它只会改变 View 对象 DRAWN 的位置。在物理上,它仍然保持在相同的位置。 这就是按钮在 View Animation 完成后无法点击的原因。

另一方面,Property Animation 可以为 View 和非 View 对象设置动画,并且它没有 View Animation 的约束。 当对象被移动时,例如,使用属性动画,它们不仅被绘制在屏幕上的某个其他位置,而且它们实际上是MOVED在那里。

现在,Property Animation 比 View Animation 写起来要复杂得多,所以如果你真的不需要 Property Animation 的所有优点,建议使用 View Animation。

来源: Property vs View Animation

教程和 SupportLybrary 直到 API 1: nineoldandroids

【讨论】:

【参考方案2】:

您可以将按钮更改为 imageViews 然后做

 imageView.setOnClickListener(myListener)

然后将 myListener 设置为执行您之前希望在按钮 onClick 上发生的任何事情。您的活动必须实现 OnClickListener

额外的好处:您可以使图像看起来像云:)

【讨论】:

没有区别。问题是,动画改变了按钮或任何其他视图的绘制位置......而不是它的物理位置。 哦。您可以用另一种方式制作动画,使用计时器,以便每隔一定的毫秒数实际更改视图布局参数。这可能会奏效。

以上是关于Android 动画 - 按钮保持可点击状态的主要内容,如果未能解决你的问题,请参考以下文章

按钮单击时的 Unity 动画返回空闲动画

如何使带有自定义背景图像的按钮在Android中显示点击动画

Android——点击按钮的阴影动画

Android:ImageView旋转动画 - 保持比例类型适合中心

动画 UIView 的子视图在动画期间不保持约束

播放动画时无法点击android按钮