我試圖實現類似BEMAnimationTypeStroke,它可以在iOS庫BEMCheckBox中找到。Android圓圈複選標記動畫
我試過使用動畫矢量繪製來實現這一點,但我不知道如何動畫從0開始點到最終位置的圓圈內的複選標記。 (該圓圈可以是靜態的,我正在尋找動畫複選標記)。 這是我嘗試這樣做的實現:
繪製/ 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>
動畫/ 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>
繪製/ 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: 最後我選擇了通過自定義視圖手動創建動畫的方法。如果任何人有一個想法,我怎樣才能通過矢量繪製實現這一點,它將是一個很好的開發實踐。謝謝。
它不起作用。不爲我製作動畫。 – kdas
'mCpuImageView.getDrawable()'給了我一個可繪製的VectorDrawable實例,而不是'Animatable' – kdas