vectordrawables usesupportlibrary true android android-studio android-imageview layout-xml

usesupportlibrary - vector drawable android



Diferencia entre app: srcCompat y android: src en el diseƱo XML de Android (8)

Al usar AppCompat con ImageView (o subclases como ImageButton y FloatingActionButton ), podrá usar la nueva app:srcCompat atributo app:srcCompat para hacer referencia a los app:srcCompat vectoriales (así como a cualquier otro dibujo disponible para android:src ). Y si está cambiando los elementos dibujables en tiempo de ejecución, podrá usar el mismo método setImageResource() que antes (sin cambios allí).

Uso de AppCompat y la app:srcCompat es el método más infalible para integrar dibujos vectoriales en su aplicación. Encontrará que hace referencia directa a los app:srcCompat vectoriales fuera de la app:srcCompat fallará antes de Lollipop .

Cada vez que creo un ImageView con un icono agregado usando los activos vectoriales de Android Studio, recibo un error en la app:srcCompat="@drawable/ic_play" línea app:srcCompat="@drawable/ic_play"

Cuando cambio la app:srcCompat con android:src , el error desaparece pero el icono parece pixelado.

¿Cuál es la principal diferencia entre

app:srcCompat="@drawable/ic_play"

y

android:src="@drawable/ic_play"


Android 5.0 (API nivel 21) y superior proporciona soporte de dibujo vectorial, por lo que para admitir dibujos vectoriales en la aplicación de versiones anteriores: se agregó srcCompat


Cuando use AppCompat con ImageView (o subclases como ImageButton y FloatingActionButton ), podrá usar la nueva app:srcCompat atributo app:srcCompat para hacer referencia a app:srcCompat vectoriales en versiones anteriores de la plataforma (así como cualquier otro elemento disponible para android:src )

android.support.v7.appcompat.R.attr.srcCompat :

srcCompat

Establece un dibujable como el contenido de este ImageView. Permite el uso de vectores dibujables cuando se ejecuta en versiones anteriores de la plataforma.

Puede ser una referencia a otro recurso, en la forma "@[+][package:]type/name" o un atributo de tema en la forma "?[package:]type/name" .

No olvide insertar xmlns:app="http://schemas.android.com/apk/res-auto" cuando use la app:srcCompat .


Los vectores y los vectores animados solo se admiten en versiones recientes del marco. srcCompat se puede usar con la biblioteca de compatibilidad para que funcionen, pero esto solo funciona con ciertas vistas en la biblioteca de soporte. Tenga en cuenta que la aplicación: se utiliza en lugar de android :. Esto significa que no es parte del marco, sino un parámetro definido por su aplicación.


Si está usando android:src="@drawable/some_vector" sin vectorDrawables.useSupportLibrary = true en el archivo build.gradle y su aplicación tiene imágenes vectoriales (vector dibujable), entonces, al construir el archivo apk, el complemento de Android gradle genera mucho * .png para diferentes pantallas (hdpi, xhdpi ...) de cada uno de sus vectores dibujables (solo para API = <19). El resultado: mayor tamaño de apk .

Al usar la app:srcCompat="@drawable/some_vector" con vectorDrawables.useSupportLibrary = true android usa archivos de vectorDrawables.useSupportLibrary = true vectoriales sin generar archivos *.png .

Puede verificar esto con la herramienta de análisis de Android Studio apk. Simplemente construya apk con y sin vectorDrawables.useSupportLibrary = true .

Creo que esta es la principal diferencia.


Utilizar:

app:srcCompat="@drawable/backImage"

El atributo srcCompat se define realmente dentro de la biblioteca AppCompat. Importante: necesitará agregar el espacio de nombres apropiado para esto.

xmlns:app="http://schemas.android.com/apk/res-auto"

Nota

Lo que está obteniendo parece ser solo un error de pelusa que puede ignorarse. He intentado y obtuve el mismo error, pero funciona correctamente.

Puede usar las tools:ignore="MissingPrefix" para evitar ver este error, temporalmente.

Espero que esto ayude.


app:srcCompat

es el método más infalible para integrar dibujos vectoriales en su aplicación. Los dibujos vectoriales le permiten reemplazar múltiples activos png con un solo gráfico vectorial, definido en XML. Si bien anteriormente se limitaba a Lollipop y dispositivos superiores

Nota

A partir de Android Support Library 23.3.0 , los dibujos de vectores de soporte solo se pueden cargar a través de la app:srcCompat .

necesita agregar vectorDrawables.useSupportLibrary = true a su archivo build.gradle

// Gradle Plugin 2.0+ android { defaultConfig { vectorDrawables.useSupportLibrary = true } }

android:src

Establece un elemento dibujable como el contenido de este ImageView. Se mostrará en su tamaño original. Sin escala automática.


app:srcCompat="some_resource"

es referir que es AppCompatActivity src que viene en la biblioteca de soporte mientras

android:src="some_resource"

se refiere a actividad simple.