我想使用Android动画在模拟器上从左到右翻译图像。我是android动画的新手。我怎么能这样做?
感谢。
答案 0 :(得分:61)
ll = new LinearLayout(this);
ll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
ll.setOrientation(LinearLayout.VERTICAL);
tv = new TextView(this);
tv.setText("Animation");
moveLefttoRight = new TranslateAnimation(0, 200, 0, 0);
moveLefttoRight.setDuration(1000);
moveLefttoRight.setFillAfter(true);
button = new Button(this);
button.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
button.setText("PressMe");
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
tv.startAnimation(moveLefttoRight);
}
});
ll.addView(tv);
ll.addView(button);
setContentView(ll);
是这样做的一种方式。
答案 1 :(得分:33)
使用Android TranslateAnimation
从左到右移动图像
ImageView img_animation = (ImageView) findViewById(R.id.img_animation);
TranslateAnimation animation = new TranslateAnimation(0.0f, 400.0f,
0.0f, 0.0f); // new TranslateAnimation(xFrom,xTo, yFrom,yTo)
animation.setDuration(5000); // animation duration
animation.setRepeatCount(5); // animation repeat count
animation.setRepeatMode(2); // repeat animation (left to right, right to left )
//animation.setFillAfter(true);
img_animation.startAnimation(animation); // start animation
答案 2 :(得分:0)
我参加聚会有点晚了,但是在这里值得回答
情况1:
如果视图位于屏幕的左侧,并且您要从左边缘移动到右边缘,请使用以下方法:
imageView.animate()
.translationX(((rootLayout.width - (imageView.width))).toFloat())
.setInterpolator(AccelerateInterpolator()).duration = 1500
情况2: 如果您的视图位于屏幕的中心,并且您要从中心移到右边缘,请使用以下方法:
imageView.animate()
.translationX(((rootLayout.width - (imageView.width)) / 2).toFloat())
.setInterpolator(AccelerateInterpolator()).duration = 1500
注意:
rootLayout
是XML的根视图
答案 3 :(得分:-2)
添加此代码R.anim文件夹
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:fillAfter="true">
<translate
android:fromXDelta="0%p"
android:toXDelta="100%p"
android:duration="800" />
</set>