Повторить импульс Анимация
Я пытаюсь создать бесконечный пульсирующий эффект в 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 тоже.