Я пытаюсь добиться чего-то похожего на BEMAnimationTypeStroke, который можно найти в библиотеке iOS BEMCheckBox.
Я пытался использовать для этого анимированный вектор, но я не знаю, как анимировать галочку внутри круга от начальной точки 0 до конечной позиции. (круг может быть статичным, я хочу анимировать галочку). Это реализация, которую я пробовал для этого:
drawable/vector_drawable_ic_check_circle_white_48px.xml
<path
android:name="check"
android:fillColor="#FFFFFF"
android:pathData="M37.1,13.6L18.4,32.3h1.7l-8.5-8.5L10,25.5l8.5,8.5l0.8,0.8l0.8-0.8l18.7-18.7L37.1,13.6L37.1,13.6z"/>
<path
android:name="circle"
android:fillColor="#FFFFFF"
android:pathData="M24,48c13.3,0,24-10.7,24-24S37.3,0,24,0S0,10.7,0,24S10.7,48,24,48L24,48z
M24,45.6
C12.1,45.6,2.4,35.9,2.4,24S12.1,2.4,24,2.4S45.6,12.1,45.6,24S35.9,45.6,24,45.6L24,45.6z"/>
</vector>
anim/transform.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:duration="1000"
android:propertyName="fillColor"
android:valueFrom="@color/transparent"
android:valueTo="@color/white"/>
</set>
drawable/animation.xml
<?xml version="1.0" encoding="utf-8"?>
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/vector_drawable_ic_check_circle_white_48px">
<target
android:name="check"
android:animation="@anim/change_color"/>
</animated-vector>
И когда макет установлен, я запускаю анимацию, используя:
ImageView mCpuImageView = (ImageView) findViewById(R.id.animated_check);
Drawable drawable = mCpuImageView.getDrawable();
if (drawable instanceof Animatable) {
((Animatable) drawable).start();
}
Кто-нибудь может мне с этим помочь? Есть ли более простой способ добиться этого (пользовательский вид или существующая библиотека)?
Идея состоит в том, что я хочу иметь галочку в круге, и я хочу анимировать путь галочки. Когда он отображается, будет виден только круг, а затем будет анимировано создание галочки. Если другие настройки, такие как анимация круга одновременно с анимацией галочки, легко реализовать, это было бы лучше, но сначала я хочу анимировать только галочку.
LE: В конце концов я решил создать анимацию вручную с помощью пользовательского представления. Если у кого-нибудь есть представление о том, как я могу добиться этого с помощью векторного рисования, это будет хорошей практикой разработки. Спасибо.