Использование векторной графики для Android при падении Lollipop
Я использую векторные Drawables в Androidдо леденцов и это некоторые из моих библиотек и версий инструментов:
Android Studio: 2.0Плагин Android Gradle: 2.0.0Инструменты сборки: 23.0.2Библиотека поддержки Android: 23.3.0Я добавил это свойство на своем уровне приложенияBuild.Gradle
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
Также стоит упомянуть, что я использую дополнительную прорисовку, такую как LayerDrawable (layer_list), как указано в официальном блоге Android (ссылка здесь) для настройки рисования для векторных рисунков за пределамиapp:srcCompat
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/search"/>
</level-list>
Вы найдете прямые ссылки на векторные элементы рисования вне приложения: srcCompat завершится с ошибкой до Lollipop. Однако AppCompat поддерживает загрузку векторных рисованных объектов, когда на них ссылаются в другом рисуемом контейнере, таком как StateListDrawable, InsetDrawable, LayerDrawable, LevelListDrawable и RotateDrawable. Используя этокосвенностьВы можете использовать векторные элементы рисования в таких случаях, как атрибут TextView android: drawableLeft, который обычно не может поддерживать векторные элементы рисования.
Когда я используюapp:srcCompat
все работает нормально, но когда я использую:
android:background
android:drawableLeft
android:drawableRight
android:drawableTop
android:drawableBottom
наImageView
, ImageButton
, TextView
или жеEditText
до Lollipop, он бросает ожидание:
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/search_toggle.xml from drawable resource ID #0x7f0200a9