Android - 无法实现ValueAnimator

时间:2015-01-04 15:30:34

标签: android android-animation

我尝试使用ImageView课程为ValueAnimator设置动画。但是,ValueAnimator类的official documentation不包含足够的详细信息(至少对于初学者而言)。我希望ImageView在点击Button时向右移动(翻译动画)。我使用以下代码但没有使用。

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.Button;
import android.widget.ImageView;
import android.animation.ValueAnimator;


public class TestActivity extends ActionBarActivity {

    private ImageView image;
    private Button animateButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);

        image = (ImageView) findViewById(R.id.imageView);
        animateButton = (Button) findViewById(R.id.button);

        final ValueAnimator animator = ValueAnimator.ofInt(0, 100);
        animator.setTarget(android);

        animateButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                animator.start();
            }
        });
    }
}

layout

当我点击" Animate"按钮,没有动画发生,图像保持原样。我只是无法弄清楚如何让这件事发挥作用。有关此问题的任何帮助将受到高度赞赏。

提前致谢。

1 个答案:

答案 0 :(得分:1)

  

但是,ValueAnimator类的官方文档中没有包含足够的详细信息(至少对于初学者而言)。

您可能遗漏的key bit是:

  然而,

[使用普通的ValueAnimator]对对象没有实际影响,因为ValueAnimator不直接对对象或属性进行操作。

将您的ValueAnimator更改为属性动画:

ObjectAnimator animator = ObjectAnimator.ofFloat(image, "x", 0f, 100f);

并删除setTarget()行。

或者,使用更简单的语法:

image.animate().x(100f);