我想动画化 View 填充的变化。翻译动画的静止位置与我要应用的填充相同。

TranslateAnimation moveleft = new TranslateAnimation(Animation.ABSOLUTE, 0.0f,
                    Animation.ABSOLUTE, PADDING, Animation.ABSOLUTE,
                    0.0f, Animation.ABSOLUTE, 0.0f);

moveLeft.setDuration(500);
moveLeft.setFillAfter(true);

这将启动 View 的动画,然后设置填充。这并不完全有效,因为它会导致图形故障。
v.startAnimation(moveleft);
v.setPadding(PADDING, 0, 0,0);

最佳答案

与其立即设置填充,不如在完成动画后不尝试使用动画监听器设置填充?

v.setAnimationListener(new Animation.AnimationListener() {
    ...
    @Override
    public void onAnimationEnd(){
        v.setPadding(PADDING, 0, 0,0);
    }
    ...
});
v.startAnimation(moveleft);

10-07 19:33
查看更多