这个类的构造函数接受参数来定义将被动画化的目标对象以及将被动画化的属性名称。

构造方法

ObjectAnimator.ofFloat ( target, propertyName, values)

Parameters
target 动画的目标,一般是控件ID
propertyName 动画的属性值
values 传入一个小数数组,属性值将根据这个数组的值进行变化

ObjectAnimator.ofInt ( target, propertyName, values)

Parameters
target 动画的目标,一般是控件ID
propertyName 动画的属性值
values 传入一个整数数组,属性值将根据这个数组的值进行变化

ObjectAnimator.ofMultiFloat ( target, propertyName, values)

Parameters
target 动画的目标,一般是控件ID
propertyName 动画的属性值
values 传入一个二维小数数组,属性值将根据这个数组的值进行变化

ObjectAnimator.ofMultiInt ( target, propertyName, values)

Parameters
target 动画的目标,一般是控件ID
propertyName 动画的属性值
values 传入一个二维整数数组,属性值将根据这个数组的值进行变化

ObjectAnimator.ofObject ( target, propertyName, evaluator, values)

Parameters
target 动画的目标,一般是控件ID
propertyName 动画的属性值
evaluator 将在每个动画帧上调用的类型求值器,以在对象值之间提供必要的插值以派生动画值。
values 传入一个对象数组,属性值将根据这个数组的值进行变化

evaluator的可选值:

ArgbEvaluator 这个求值器可用于在表示ARGB颜色的整数值之间执行类型插值。
FloatArrayEvaluator 这个求值器可用于在浮点[]值之间执行类型插值。
FloatEvaluator 这个求值器可用于在浮点值之间执行类型插值。
IntArrayEvaluator 这个求值器可用于在int[]值之间执行类型插值。
IntEvaluator 这个求值器可用于在int值之间执行类型插值。
PointFEvaluator 这个求值器可用于在PointF值之间执行类型插值。
RectEvaluator 此求值器可用于在Rect值之间执行类型插值。

示例:

  1. require "import"
  2. import "android.os.*"
  3. import "android.app.*"
  4. import "android.view.*"
  5. import "android.widget.*"
  6. import "android.animation.*"
  7. local layout = loadlayout({
  8. LinearLayout,
  9. layout_width = "fill",
  10. layout_height = "fill",
  11. gravity = "center",
  12. {
  13. Button,
  14. layout_width = "100dp",
  15. layout_height = "50dp",
  16. text = "开始动画",
  17. id = "button",
  18. },
  19. })
  20. activity.setContentView(layout)
  21. function initAnimate()
  22. -- 定义对象动画,将按钮的alpha(透明属性)从10进行变化
  23. local animate = ObjectAnimator.ofFloat(button,"alpha",{1,0})
  24. -- 设置动画时间
  25. animate.setDuration(3000)
  26. -- 点击按钮开始动画
  27. button.onClick = function()
  28. animate.start()
  29. end
  30. end
  31. function main()
  32. initAnimate()
  33. end

效果:

属性动画-对象动画 - 图1