我使用addRule()
进行LayoutParams
转换。
我的视图位置发生了改变,但持续时间很短。
我使用的是API 15,所以无法使用beginDelayedTransition()
。
Animation a = new Animation() {
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
final RelativeLayout.LayoutParams positionRules = new RelativeLayout.LayoutParams(layoutFalse.getWidth(), layoutFalse.getHeight());
positionRules.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
positionRules.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
layoutFalse.requestLayout();
layoutFalse.setLayoutParams(positionRules);
}
};
a.setDuration(3000);
layoutFalse.startAnimation(a);
applyTransformation()
中计算中间步骤,或使用 Transitions framework。 - laaltoapplyTransformation()
实现它。我的应用程序中有许多类似的转换,我不想将其切换到Transition框架。我只想像beginDelayedTransition()
一样减慢它的速度。 - Tino Balint