Повторить импульс Анимация

Я пытаюсь создать бесконечный пульсирующий эффект в ImageView. Но как можно сохранить смещение?

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<scale
    android:duration="700"
    android:fromXScale="1"
    android:fromYScale="1"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toXScale="0.5"
    android:toYScale="0.5"/>
<scale
    android:duration="700"
    android:fromXScale="1"
    android:fromYScale="1"
    android:pivotX="50%"
    android:pivotY="50%"
    android:startOffset="700"
    android:toXScale="2"
    android:toYScale="2"/>
</set>

Ответ 1

Это заставит ваш (изображение) вид пульсировать до 1,2 его размера и обратно, повторно.

ImageView iv = (ImageView) findViewById(R.id.my_imageview);

ObjectAnimator scaleDown = ObjectAnimator.ofPropertyValuesHolder(
                    iv,
                    PropertyValuesHolder.ofFloat("scaleX", 1.2f),
                    PropertyValuesHolder.ofFloat("scaleY", 1.2f));
scaleDown.setDuration(310);

scaleDown.setRepeatCount(ObjectAnimator.INFINITE);
scaleDown.setRepeatMode(ObjectAnimator.REVERSE);

scaleDown.start();

Ответ 2

Вы можете установить значения startOffset для каждой анимации в вашем наборе.

Ответ 3

Если вы хотите создать бесконечную анимацию, лучшим способом было бы создать пользовательский вид и в onDraw создать анимацию. Например: Как анимировать путь на холсте - андроид

На самом деле вы можете делать анимацию с SurfaceView тоже.