Android: Запустите AnimatedVectorDrawable анимацию в середине пути

Фон: я ищу, чтобы создать таймер обратного отсчета, похожий на таймер родного приложения Clock. Я очень новичок в Android-анимации, поэтому я оценивал различные решения. Я искал, чтобы пойти с AnimatedVectorDrawable с, но попал в блокпост.

Вопрос: есть ли способ запустить анимацию на AnimationVectorDrawable на полпути вместо с самого начала? Если нет, то как лучше всего создавать такую ​​анимацию?

Вариант использования: я хочу, чтобы анимация обратного отсчета оставалась синхронизированной с минутными отметками на часах, поэтому, когда пользователь отображает ее в то время, которое не находится на минутной отметке, анимация обратного отсчета начинается посередине, поэтому она заканчивается на минутной отметке,

XML-макет для animated-vector :

<animated-vector
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:aapt="http://schemas.android.com/aapt">
    <aapt:attr name="android:drawable">
        <vector
            android:name="vector"
            android:width="26dp"
            android:height="26dp"
            android:viewportWidth="26"
            android:viewportHeight="26">
            <path
                android:name="path"
                android:pathData="M 13 1 C 6.373 1 1 6.373 1 13 C 1 19.627 6.373 25 13 25 C 19.627 25 25 19.627 25 13 C 25 6.373 19.627 1 13 1 Z"
                android:strokeWidth="1"
                android:fillType="evenOdd"/>
        </vector>
    </aapt:attr>
    <target android:name="path">
        <aapt:attr name="android:animation">
            <set>
                <objectAnimator
                    android:propertyName="trimPathStart"
                    android:duration="2950"
                    android:valueFrom="0"
                    android:valueTo="1"
                    android:valueType="floatType"
                    android:interpolator="@android:anim/linear_interpolator"/>
                <objectAnimator
                    android:propertyName="trimPathStart"
                    android:startOffset="2950"
                    android:duration="50"
                    android:valueFrom="1"
                    android:valueTo="0"
                    android:valueType="floatType"
                    android:interpolator="@android:interpolator/fast_out_slow_in"/>
                <objectAnimator
                    android:propertyName="strokeColor"
                    android:duration="1900"
                    android:valueFrom="#818181"
                    android:valueTo="#f0c473"
                    android:valueType="colorType"
                    android:interpolator="@android:anim/accelerate_interpolator"/>
                <objectAnimator
                    android:propertyName="strokeAlpha"
                    android:duration="3000"
                    android:valueFrom="1"
                    android:valueTo="1"
                    android:valueType="floatType"
                    android:interpolator="@android:anim/linear_interpolator"/>
                <objectAnimator
                    android:propertyName="strokeColor"
                    android:startOffset="1900"
                    android:duration="600"
                    android:valueFrom="#f0c473"
                    android:valueTo="#e06969"
                    android:valueType="colorType"
                    android:interpolator="@android:anim/accelerate_interpolator"/>
                <objectAnimator
                    android:propertyName="strokeColor"
                    android:startOffset="2500"
                    android:duration="450"
                    android:valueFrom="#e06969"
                    android:valueTo="#e06969"
                    android:valueType="colorType"
                    android:interpolator="@android:anim/decelerate_interpolator"/>
                <objectAnimator
                    android:propertyName="strokeColor"
                    android:startOffset="2950"
                    android:duration="50"
                    android:valueFrom="#e06969"
                    android:valueTo="#818181"
                    android:valueType="colorType"
                    android:interpolator="@android:anim/linear_interpolator"/>
            </set>
        </aapt:attr>
    </target>
</animated-vector>

0 ответов