动画RelativeLayout边距更改

use*_*512 4 android relativelayout android-animation

码:

RelativLayout.LayoutParams params = (RelativLayout.LayoutParams) view1.getLayoutParams();
params.setMargins(50, 0, 0, 0);
view1.setLayoutParams(params);
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常,但我想对其进行动画处理。

Luk*_*rog 5

您可以这样使用ValueAnimator

ValueAnimator varl = ValueAnimator.ofInt(50);
varl.setDuration(4000);
varl.addUpdateListener(new AnimatorUpdateListener() {

    @Override
    public void onAnimationUpdate(ValueAnimator animation) {
        RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) view1.getLayoutParams();
        lp.setMargins((Integer) animation.getAnimatedValue(), 0, 0, 0);
        view1.setLayoutParams(lp);      
    }
});
varl.start();
Run Code Online (Sandbox Code Playgroud)

ValueAnimator可从蜂窝但你有NineOldAndroids口。