4
這是我的build.gradle無法投射到AnimatedVectorDrawableCompat在牛軋糖
defaultConfig {
...
minSdkVersion 21
targetSdkVersion 26
vectorDrawables.useSupportLibrary = true
}
和佈局
<ImageView
android:id="@+id/recents"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:scaleType="fitCenter"
app:srcCompat="@drawable/anim_test"/>
的一部分,該類投:
val np = convertView.findViewById<ImageView>(R.id.recents)
val anim = np.drawable as AnimatedVectorDrawableCompat
這可以作爲預計在Lolipop(sdk 21),但牛軋糖失敗說:
android.graphics.drawable.AnimatedVectorDrawable cannot be cast to android.support.graphics.drawable.AnimatedVectorDrawableCompat
我沒有得到的是,爲什麼當系統已經支持AnimatedVectorDrawable時,爲什麼它會在sdk level 21上返回AnimatedVectorDrawableCompat?爲什麼它會返回Nougat中的AnimatedVectorDrawable,儘管指定了vectorDrawables.useSupportLibrary = true
。
同樣的問題。通過解決方法解決:運行時的條件 - 您需要爲棒棒糖和更高版本投射AnimatedVectorDrawable,之前棒棒糖投射AnimatedVectorDrawableCompat。 – Fllo