I need to make an ImageView
slide from left to right of the screen with a smooth animation (I want the ImageView
to be visible during the transition) I tried with the following code:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
camion.animate()
.translationX(width)
.setDuration(2000)
.setInterpolator(new LinearInterpolator())
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
//camion.setVisibility(View.GONE);
}
});
The ImageView
moves but the animation is laggy and not smooth like I want to.
What am I doing wrong on the code?
To Move
imageview
from Right to Left Using @Aritra Roy Answer.
Use this code
Creating this kind of tween animation is simple. Just follow the steps,
Step 1
Create a directory
anim
inside theres
directory and put this asslide.xml
You can obviously customize the animation by changing the two attributes
fromXDelta
andtoXDelta
. The %p refers to with respect to the parent which simply means that it will move the image 75% with respect to the parent.Step 2
You can also
setInterpolator()
andsetListeners()
if you want to. I haven't shown them here to keep it simple. If you need, just let me know.NOTE
As you have mentioned repeatedly, that you are experiencing a laggy animation. I have tested this animation on 3 real devices and 2 emulators and the animation was buttery smooth on all of them. Tested on low end devices like Moto E to high end devices like Nexus 5 and Galaxy S6.
If you still have a lag running this code, then the test device must be the reason. The code is perfect.
UPDATE
I just checked on my Moto G running on Lollipop too, the animation is running smoothly. This is a very small and light-weight animation, and should never be laggy. If you are still getting a lag, then it must be the device you are testing, or some other piece of code on that Activity making the UI slow or unresponsive.
Try to check which one is applicable to you,
AsyncTask
for these heavy operationsTry this. It will animate the imageview.
Hope this works for u
animation.xml
Animation.java
try the code below