【发布时间】:2021-02-03 12:41:52
【问题描述】:
我有一个按钮,按下时可以使另一个对象按比例放大。
两个对象都在代码中添加到视图中
container.addView(button)
container.addView(object)
object.scaleX = 0f;
object.scaleY = 0f;
稍后我想将动画从 0f 缩放到 1f... 像这样:
val scaleAnimation = ScaleAnimation(0f, 1f,
0f, 1f, Animation.RELATIVE_TO_PARENT,
0.5f, Animation.RELATIVE_TO_PARENT, 0.5f)
scaleAnimation.fillAfter = true
scaleAnimation.duration = 100
object.startAnimation(scaleAnimation)
这不起作用。在 ScaleAnimation 中,0f 和 1f 是相对于对象的当前比例,而不是相对于它的实际大小。当然,这不应该是这样的吗?
如果我只用 object.scaleX = 1f... 替换动画...无论原来的 scaleX 是什么,它都可以工作。所以,看起来 ScaleAnimation 实际上并没有为对象的 ScaleX 和 ScaleY 属性设置动画,它只是在顶部添加了一个新的比例层。
如何使动画在对象的实际 ScaleX 属性上工作,对象从 0f 开始,然后在需要时动画到 1f?
【问题讨论】: