Как увеличить масштаб и вернуться с анимацией android? - PullRequest
0 голосов
/ 16 января 2020

Я пытался увеличить изображение, а затем вернуться к исходному размеру с уменьшением, как при анимации.

То, что я смог сделать, это поместить масштаб в набор и анимировать его при просмотре изображения по нажатию кнопки, но в первый раз он внезапно уменьшает размер изображения, а затем прекрасно анимирует на последующие клики. Я был бы признателен за любую помощь для достижения sh плавной анимации

мой код

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true"
    >
    <scale
        android:duration="1000"
        android:fromXScale="1"
        android:fromYScale="1"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale=".5"
        android:toYScale=".5" >
    </scale>
    <scale
        android:duration="1000"
        android:fromXScale=".5"
        android:fromYScale=".5"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1"
        android:toYScale="1" >
    </scale>

</set>
final Animation ani_in = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.zoomin_out);
imageView.startAnimation(ani_in);

1 Ответ

1 голос
/ 16 января 2020

Анимация устарела ( Анимация против Аниматора ). Использовать ValueAnimator:

        final ValueAnimator anim = ValueAnimator.ofFloat(1f, 1.5f);
        anim.setDuration(1000);
        anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                image.setScaleX((Float) animation.getAnimatedValue());
                image.setScaleY((Float) animation.getAnimatedValue());
            }
        });
        anim.setRepeatCount(1);
        anim.setRepeatMode(ValueAnimator.REVERSE);
        anim.start();

enter image description here

...