android - ObjectAnimator 动画属性列表

标签 android animation objectanimator

我正在尝试查找 ObjectAnimator 可以设置动画的属性列表以及它如何设置动画。

例如,我想知道 translationY 属性是如何设置动画的。该值是要坐标还是距离?

最佳答案

ObjectAnimators实际上会为名称前面带有“set”的任何内容设置动画。所以在 View 的情况下有 setX(float) , setY(float) , setZ(float) , setTranslationX(float) , 等等。

同样,如果您创建一个具有自己属性的自定义 View ,则只需使用 set____(type)使用 ObjectAnimator 的语法无需额外工作。

基本上他们所做的只是以重复的间隔调用这些方法,其值由 TimeInterpolator 确定设置为 Animator .

编辑:

有很多属性可以在 View 上设置动画,但这里是对更常见的属性的描述。

setX/Y(float) - 这会将 View 动画化为父级的精确 X 或 Y 坐标 View它包含在其中。像素坐标从 (0,0) 开始。在左上角和(getWidth(), height())在右下角。 setY(float)将调整 getTop() View 和 setX(float)将调整 getLeft()的观点。

setTranslationX/Y(float) - 这将使 View 动画到 View 的相对位置到起点所在的地方。因此,例如,如果 View 的 getLeft()返回 50,然后当您调用 setTranslationX(25) 时会将 View 向右移动 25 个像素到第 75 个像素。同样,setTranslationY(25)会将 View 向下移动 25 像素。负值将分别向左和向上移动。

setRotation(float) - 这将旋转 View围绕由 setPivotX(float) 定义的给定枢轴点和 setPivotY(float) .默认情况下,枢轴点位于坐标 (0,0)。您可以通过执行以下操作将其设置为中心:

View viewToAnimate = getViewToAnimate();
float width = viewToAnimate.getWidth();
float height = viewToAnimate.getHeight();
viewToAnimate.setPivotX(width/2);
viewToAnimate.setPivotY(height/2);

setScaleX/Y(float) - 如上所述,这将根据枢轴点缩小或增大 View 。 “1.0f”的值将使其成为正常大小。任何小于“1”的东西都会缩小,任何大于“1”的东西都会让它变大。

关于android - ObjectAnimator 动画属性列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37193197/

相关文章:

android - Google Cloud Endpoints 应用的 userinfo.email 弃用的迁移路径是什么?

android - 从 SD 卡(上的目录)获取文件列表的好方法是什么?

android - 在同时运行多个动画时减少延迟的任何技巧?

android - ValueAnimator内存问题

android - 使用动画师对其某些属性进行动画处理后,如何将 View 重置为原始状态?

java - 为每个ImageView设置固定大小和drawable样式

java - 如果 JPanel 填满屏幕,它不会移动

ios - 为什么隐式动画会覆盖我的 CABasicAnimation?

c++ - Windows:是否有我可以作为 Visual C++ 资源引用的内置加载动画?

android - 如何在视频系统中捕获和编码音频_Android