android - 有没有办法对动画进行参数化?
问题描述
我创建了一个简单的动画来使视图反复上下移动:
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromYDelta="0"
android:toYDelta="???"
android:duration="1000"
android:repeatCount="1000000"
android:repeatMode="reverse"/>
</set>
我正在为此使用动画资源,就像文档中建议的那样。但是,在编译时我不知道视图应该走多远(toYDelta
),因为它取决于设备屏幕。
有没有办法以某种方式对其进行参数化,如果没有,有什么方法可以绕过它?
解决方案
您可以像在 Kotlin 中那样以编程方式实现相同的动画:
val bounceAnimation = TranslateAnimation(0f, 0f, fromYDelta, toYDelta).apply {
duration = 1000
repeatCount = 1000000
repeatMode = Animation.REVERSE
interpolator = AccelerateDecelerateInterpolator()
}
view.startAnimation(bounceAnimation)
推荐阅读
- java - 如何从 xml 文件中读取 html 标签?
- xcode - 我可以在 Xcode 12.3 上调试 tvOS 14.6 吗?
- ios - PDFNet Resize annot Swift
- python - 使用数据库连接处理多线程
- google-cloud-dataproc - Dataproc 虚拟机内存和本地磁盘使用情况指标
- javascript - 用 React 服务 Django 视图?
- firebase - 我无法从购物车中删除产品
- html5-video - GLightbox 和 HTML5 视频 - 我如何设置海报图像?
- python - PermissionError:[Errno 13] 以管理员身份运行时权限被拒绝
- d3.js - D3 网格线/刻度线出现在文本上方