我创建了一个简单的动画,以使视图反复上下移动:
<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),因为它将依赖于设备屏幕。
有没有一种方法可以帮助护理人员,如果不是的话,有什么方法可以绕过它?
发布于 2019-04-02 21:15:44
您可以像在Kotlin中那样以编程方式实现相同的动画:
val bounceAnimation = TranslateAnimation(0f, 0f, fromYDelta, toYDelta).apply {
duration = 1000
repeatCount = 1000000
repeatMode = Animation.REVERSE
interpolator = AccelerateDecelerateInterpolator()
}
view.startAnimation(bounceAnimation)发布于 2019-04-02 21:16:47
你可以用百分比来表示这些值。" 20% p“是父母的20%
更多信息见https://developer.android.com/guide/topics/resources/animation-resource
发布于 2019-04-02 21:19:02
文档显示,这里:
垂直和/或水平运动。支持以下三种格式之一的下列属性:以"%“结尾的值从-100到100,表示相对于自身的百分比;以"%p”结尾的值,以“%p”结尾,表示相对于其父格式的百分比;不带后缀的浮点数,表示绝对值。表示TranslateAnimation。
%p会帮你做你想做的事。
https://stackoverflow.com/questions/55483403
复制相似问题