Я пытаюсь анимировать ImageView при щелчке по указанному изображению.Как программно анимировать ImageView
В частности, я хочу, чтобы размер ImageView увеличивался (скажем, на 20 больше) и сразу уменьшался до первоначального размера).
До сих пор я экспериментировал с этим кодом без везения.
// thumbLike is the imageView i would like to animate.
button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ScaleAnimation scaleAnim = new ScaleAnimation(1.0f, 2.5f, 1.0f, 2.5f,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
scaleAnim.setInterpolator(new LinearInterpolator());
scaleAnim.setDuration(1500);
thumbLike.startAnimation(scaleAnim);
thumbLike.setAnimation(null);
}
});
Может ли кто-нибудь предложить мне возможное решение?
Редактировать # 1
Он работает через XML, как ответил Hardik4560:
// finally i use this code to execute the animation
Animation animationScaleUp = AnimationUtils.loadAnimation(this, R.anim.scale_up);
Animation animationScaleDown = AnimationUtils.loadAnimation(this, R.anim.scale_down);
AnimationSet growShrink = new AnimationSet(true);
growShrink.addAnimation(animationScaleUp);
growShrink.addAnimation(animationScaleDown);
thumbLike.startAnimation(growShrink);
и XML
SCALE_UP
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<scale
android:fromXScale="1.0"
android:toXScale="1.5"
android:fromYScale="1.0"
android:toYScale="1.5"
android:pivotX="50%"
android:pivotY="50%"
android:duration="1000" />
</set>
SCALE_DOWN
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<scale
android:fromXScale="1.5"
android:toXScale="1.0"
android:fromYScale="1.5"
android:toYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="1000" />
</set>
пс: это неудобно, так как я уже принял ответ. Я пытаюсь объединить ответы @tharkbad и @ Hardik4560, но теперь способ, которым он оживляет, не выглядит гладким.
во время анимации scale_up, это похоже на «пропустить» до конца анимации, а затем сразу же запустить анимацию scale_down. Думаю, мне нужно немного поиграть с ним.
является то производить какую-либо ошибку? – Kitkat
Нет, это не так. Это просто ничего не делает. – Jeremy