Android-анимация для успешного завершения изображения - PullRequest
0 голосов
/ 23 июня 2019

У меня есть изображение, в котором у меня есть 3 изображения

  1. green_circle - который я должен увеличить -> затем zoom_out (в указанное время)
  2. white_tick - который мне нужно увеличить -> затем zoom_out (в указанное время)
  3. green_sparkle - увеличение и уменьшение

Вид изображения настраивается следующим образом, используя слои слоев -

int[] firstImageArray = new int[]{R.drawable.ic_green_circle, R.drawable.ic_outer_sparkle, R.drawable.ic_white_tick_mark};
Drawable[] layers = new Drawable[firstImageArray.length];
for(int i = 0; i<firstImageArray.length; i++) {
    layers[i] = getResources().getDrawable(firstImageArray[i]);
}
imageView.setImageDrawable(new LayerDrawable(layers));

файлы анимации похожи на это (для увеличения и уменьшения в указанное время): R.anim.image_circle_zoom:

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="2333"
    >

    <scale
        android:duration="233"
        android:fromXScale="0.0"
        android:fromYScale="0.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1.0"
        android:toYScale="1.0" />

    <scale
        android:duration="69"
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:startOffset="1931"
        android:toXScale="1.18"
        android:toYScale="1.18" />

    <scale
        android:duration="165"
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:startOffset="2000"
        android:toXScale="0.0"
        android:toYScale="0.0" />
</set>

Мне нужно добиться анимации, подобной этой link1 или link2

Я пробовал AnimationSet, AnimatorSet и ObjectAnimator, но мне не удалось достичь желаемых результатов. Буду признателен за любую помощь в том, как ее можно достичь?

1 Ответ

0 голосов
/ 25 июня 2019

Вы добавляете ссылки на файлы анимации Lottie. Эти файлы могут быть включены в проект напрямую. Просто скопируйте файл json с сайта и поместите его в LottieAnimationView. Вот ссылка на документы и github хранилище . Самый простой способ сделать такую ​​анимацию - через файлы lottie.

Другой способ - использовать SVG изображение, где каждая часть изображения должна быть отдельной path. Тогда все, что вам нужно сделать, это оживить эти пути с помощью AnimatedVectorDrawable. Есть много хороших учебных пособий о том, как это можно реализовать, например this и this

...