drawableLeft векторное изображение api <21 из XML - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть поддержка API нижнего конечного устройства <21. Я уже использовал drawableLeft, drawableRight во многих местах в моем существующем проекте.Когда я запускаю приложение API 19, происходит сбой, говоря, что не могу найти это изображение.</p>

Я знаю, что могу добавить изображение программно, но в этом случае мне нужно обновить весь проект.Есть ли какое-нибудь решение, чтобы решить это?

Я использую buildToolsVersion "26.0.1"

ПРИМЕЧАНИЕ: Поскольку у меня уже есть более 50+ векторов, невозможно редактировать один за другим, например, добавив:

layer-list

Ответы [ 3 ]

0 голосов
/ 14 ноября 2018

Есть ли случаи, когда ваши изображения находятся в папке типа drawable-v24, а не в основной папке drawable?
Если это так, скопируйте их в drawable тоже.
В противном случае они не могут быть найдены.

0 голосов
/ 19 ноября 2018

В build.gradle * 1002 вашего приложения необходимо включить:

android {
defaultConfig {
    vectorDrawables.useSupportLibrary = true
}
}

И для поддержки вектора менее API 21 добавьте следующее к onCreate:

AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); 
0 голосов
/ 14 ноября 2018

Начиная с версии 23.3.0 векторные чертежи можно загружать только через приложение: srcCompat или setImageResource ()

Создание отдельного чертежа со списком слоев new_icon.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/your_vector_drawable" />
</layer-list>

Теперь в вашем TextView установите его следующим образом

<TextView
...
android:drawableLeft="@drawable/new_icon"/>
...