【发布时间】:2012-12-02 14:47:25
【问题描述】:
我正在通过以下方式更改图像视图的左边距:
ViewGroup.MarginLayoutParams layoutParams = (MarginLayoutParams) image.getLayoutParams ();
layoutParams.leftMargin = VALUE;
image.setLayoutParams ( layoutParams );
我希望将边距更改应用于动画。有什么线索吗?
我尝试了什么:
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat ( image , "x" , VALUE);
objectAnimator.start();
这非常有效,当图像通过动画移动到指定的 X 值时,但是 layoutParams.leftMargin 的值保持不变!所以我不能使用这个方法,因为如果我在使用值为 100 的 objectAnimator 之后尝试将 layoutParams.leftMargin 的值更改为 100,则应用的值不正确(应用 200 而不是 100,即使我以以下方式设置左边距,objectAnimator 的效果仍然存在:
layoutParams.leftMargin = 100;
【问题讨论】:
-
查看此处了解使用 ViewPropertyAnimator 的简单解决方案:stackoverflow.com/a/33077358/1438339