I\'d like to translate an image from left to right on emulator using android animation. I\'m new to android animation. How could I do that?
Thanks.
Move an image from left to right and right to left by using 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
you can find more details from here
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);
is one way of doing it.
Add this code R.anim folder
<?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>
I am a bit late to the party but worth answering here,
case 1:
if your view is at the left side of the screen and you want to move from left edge to right edge then use this:
imageView.animate()
.translationX(((rootLayout.width - (imageView.width))).toFloat())
.setInterpolator(AccelerateInterpolator()).duration = 1500
case 2: If your view is at the center of the screen and you want to move from center to right edge then use this:
imageView.animate()
.translationX(((rootLayout.width - (imageView.width)) / 2).toFloat())
.setInterpolator(AccelerateInterpolator()).duration = 1500
NOTE:
rootLayout
is root view of your XML