Android - 无法实现 ValueAnimator
Android - Unable to implement ValueAnimator
我正在尝试使用 ValueAnimator
class 为 ImageView
制作动画。但是,ValueAnimator
class 的 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();
}
});
}
}
当我点击 "Animate" 按钮时,没有动画发生,图像保持原样。我只是想不通如何使它正常工作。非常感谢有关此问题的任何帮助。
提前致谢。
However, the official documentation for the ValueAnimator class does not contain enough details(at least, for beginners).
你可能错过的key bit是:
[Using a plain ValueAnimator], however, has no real effect on an object, because the ValueAnimator does not operate on objects or properties directly.
将您的 ValueAnimator
更改为 属性 动画师:
ObjectAnimator animator = ObjectAnimator.ofFloat(image, "x", 0f, 100f);
并删除 setTarget()
行。
或者,使用更简单的语法:
image.animate().x(100f);
我正在尝试使用 ValueAnimator
class 为 ImageView
制作动画。但是,ValueAnimator
class 的 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();
}
});
}
}
当我点击 "Animate" 按钮时,没有动画发生,图像保持原样。我只是想不通如何使它正常工作。非常感谢有关此问题的任何帮助。
提前致谢。
However, the official documentation for the ValueAnimator class does not contain enough details(at least, for beginners).
你可能错过的key bit是:
[Using a plain ValueAnimator], however, has no real effect on an object, because the ValueAnimator does not operate on objects or properties directly.
将您的 ValueAnimator
更改为 属性 动画师:
ObjectAnimator animator = ObjectAnimator.ofFloat(image, "x", 0f, 100f);
并删除 setTarget()
行。
或者,使用更简单的语法:
image.animate().x(100f);