Как анимировать рисование с помощью аниматора объектов - PullRequest
0 голосов
/ 05 мая 2018

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

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ic_map_colored"
        android:state_selected="true" >
        <set>
            <objectAnimator
                android:duration="150"
                android:propertyName="scaleX"
                android:valueTo="2"
                android:valueType="floatType" />
            <objectAnimator
                android:duration="5000"
                android:propertyName="scaleY"
                android:valueTo="2"
                android:valueType="floatType"/>
        </set>
    </item>
    <item android:drawable="@drawable/ic_map" android:state_selected="false" >
        <set>
            <objectAnimator
                android:duration="150"
                android:propertyName="scaleX"
                android:valueTo="1"
                android:valueType="floatType"/>
            <objectAnimator
                android:duration="5000"
                android:propertyName="scaleY"
                android:valueTo="1"
                android:valueType="floatType"/>
        </set>
    </item>
</selector>

Просто я пытаюсь увеличить масштаб при выборе изображения и уменьшить масштаб при отмене выбора изображения. Но приведенный выше код не работает, как это сделать?

1 Ответ

0 голосов
/ 05 мая 2018

Попробуйте этот код ..

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <set>
        <objectAnimator
            android:duration="150"
            android:propertyName="scaleX"
            android:valueTo="2"
            android:valueType="floatType" />
        <objectAnimator
            android:duration="5000"
            android:propertyName="scaleY"
            android:valueTo="2"
            android:valueType="floatType"/>
    </set>
    <set>
        <objectAnimator
            android:duration="150"
            android:propertyName="scaleX"
            android:valueTo="1"
            android:valueType="floatType"/>
        <objectAnimator
            android:duration="5000"
            android:propertyName="scaleY"
            android:valueTo="1"
            android:valueType="floatType"/>
    </set>
</set>

затем позвоните, как показано ниже код.

AnimatorSet set = (AnimatorSet)  AnimatorInflater.loadAnimator(getActivity(), R.animator.sample);
set.setTarget(fab); // set the view you want to animate
set.start();
...