[英]Dynamically animate a layout
我必须以编程方式实现(子)布局转换动画,因为要转换的距离是在运行时确定的。 我设置了以下翻译动画
TranslateAnimation tanim = new TranslateAnimation(
TranslateAnimation.ABSOLUTE, 0.0f,
TranslateAnimation.ABSOLUTE, 0.0f,
TranslateAnimation.ABSOLUTE, 0.0f,
TranslateAnimation.ABSOLUTE, 100);
例如,向下滑动布局。
问题1:动画结束后,此布局将快速恢复到原始位置。 有什么我应该设定来维持其立场吗? 我怀疑这是由布局移出父布局引起的(父布局有参数layout_width="wrap_content"
)。 如果是这种情况,我如何调整父布局以适应子布局更改?
问题2:我是否必须提供自定义插补器类才能实现减速效果? 如果是的话,你知道我在哪里可以找到一个例子吗? 在xml中,我可以这样做
android:interpolator="@android:anim/accelerate_interpolator"
是否有等效的Android代码以编程方式实现加速/减速效果?
要在动画后保持位置,您需要使用fillAfter属性。 是的,公共API中有加速和减速插值类
TranslateAnimation tanim = new TranslateAnimation(
TranslateAnimation.ABSOLUTE, 0.0f,
TranslateAnimation.ABSOLUTE, 0.0f,
TranslateAnimation.ABSOLUTE, 0.0f,
TranslateAnimation.ABSOLUTE, 100);
tanim.setFillAfter(true);
tanim.setInterpolater(new DecelerateInterpolator());
//tanim.setInterpolater(new AccelerateInterpolator());
有关fillAfter和Interpolator文档的信息,请参阅动画文档,以获取系统内置的Interpolator对象的列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.