android - 向 RadioGroup 和 Radiobutton 添加过渡动画

我有一个带有四个复选按钮的 RadioGroup。我想创建一个“幻灯片”过渡动画,这样如果用户在当前选中最顶部的单选按钮时单击最底部的单选按钮,我的自定义复选框图形将从顶部位置滑动到底部。有任何想法吗?我希望它能在 Android 2.0 及更高版本上运行。

最佳答案

如果我想像的和您一样(我可能不是),您将需要 2 个动画。一个将禁用的按钮向下移动,一个将所选按钮向上移动到顶部。

您将使用 TranslateAnimation .您可以找到有关 view Animations here 的更多信息

您需要在 xml 或 java 中定义您的 TranslateAnimations,然后您可以调用 radioBtn.startAnimation(myAnim);,将您创建的或从 xml 扩展的 Animation 对象传递给它。

编辑:不幸的是,我认为以这种方式工作最终将是一个相当复杂的过程。我可以想到两种方法来达到这种效果。但两者都不是特别直接。

自己制作一个包含 CHECKED_ON 图形作为其图片的 ImageView。将其位置设置在当前选定的任何内容之上。选择新内容时,使用 TranslateAnimation 将 ImageView 移动到新选择的项目的位置。如果你走这条路,我认为你必须更改你的 CheckBox 图形以在两种状态(打开和关闭)下使用 CHECKED OFF 图像,否则一旦你点击一个新的它就会变为 ON,即使图形将飞向新选择的图形。

另一种可能的解决方案是创建一个垂直搜索栏对象并连接标签名称,以便在触摸时将搜索栏设置到正确的位置。要获得动画效果,您可以使用 for 循环并反复将搜索栏位置增加/减少一些小量,直到到达目的地。逻辑可以像复选框一样工作,只要搜索栏位置与它们一致,它们就会被视为 CHECKED_ON,否则将被关闭。这种方法实际上最终可能比使用动画来实现它更容易实现。

虽然我只是简单地考虑了一下,但我可能会倾向于第二种选择。我过去曾使用 TranslateAnimations 来模拟我为游戏制作的一些自定义 View 上的拖放操作。这是我处理的与该游戏相关的最困难的事情之一。

https://stackoverflow.com/questions/7327420/

相关文章:

php - PHP 中的滚动日志文件

visual-studio - Visual Studio 中的自定义构建规则,具有多个输出

unix - SqLite3 NFS 挂载问题与锁定 - 我可以使用类似 CIFS nobrl 的东

drupal - 如何总结 drupal 7 中 View 表的列?

pdf - 打印时将空白页插入 PDF

oop - 实现对象关联基数的模式和实践

debugging - Valgrind 在 Fortran 代码中显示未初始化的变量

macos - 什么类型的文件可以在 Mac 上使用 codesign 进行签名?

security - 如何在 Web 应用程序中保护 HTML 电子邮件?

asp.net - asp.net 中的用户控件 (ascx) 及其可绑定(bind)属性未显示在数