Cada vez que creo un ImageView con un icono agregado usando los activos vectoriales de Android Studio, recibo un error en la línea app:srcCompat="@drawable/ic_play"
Cuando cambio el app:srcCompatcon 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"
fuente

build.gradle, pero todavía no funciona, ¿alguna idea?Si está utilizando
android:src="@drawable/some_vector"sin elvectorDrawables.useSupportLibrary = truearchivo build.gradle y su aplicación tiene imágenes vectoriales (dibujables en vector), entonces, al compilar el archivo apk, el complemento de gradle de Android genera muchos archivos * .png para diferentes pantallas (hdpi, xhdpi ...) cada uno de sus vectores dibujables (solo para API = <19). El resultado: mayor tamaño de apk .Cuando se usa
app:srcCompat="@drawable/some_vector"convectorDrawables.useSupportLibrary = trueAndroid, se usan archivos dibujables vectoriales sin generar*.pngarchivos.Puede verificar esto con la herramienta de análisis de Android Studio apk. Solo construye apk con y sin
vectorDrawables.useSupportLibrary = true.Creo que esta es la principal diferencia.
fuente
Utilizar:
El atributo srcCompat se define realmente dentro de la biblioteca AppCompat. Importante: necesitará agregar el espacio de nombres apropiado para esto.
Nota
Lo que está recibiendo parece ser solo un error de pelusa que puede ignorarse. He intentado y obtuve el mismo error, pero funciona correctamente.
Puede usar
tools:ignore="MissingPrefix"para evitar ver este error, temporalmente.Espero que esto ayude.
fuente
Al usar
AppCompatconImageView(o subclases comoImageButtonyFloatingActionButton), podrá usar el nuevoapp:srcCompatatributo para hacer referencia a dibujos vectoriales en versiones anteriores de la plataforma (así como cualquier otro elemento disponible para dibujarandroid:src) .android.support.v7.appcompat.R.attr.srcCompat :
No olvides agregarlo
xmlns:app="http://schemas.android.com/apk/res-auto"cuando lo usesapp:srcCompat.fuente
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.
fuente
es referir que es AppCompatActivity src que viene en la biblioteca de soporte mientras
se refiere a actividad simple.
fuente
Cuando se usa
AppCompatconImageView(o subclases comoImageButtonyFloatingActionButton), podrá usar el nuevoapp:srcCompatatributo para hacer referencia a dibujos vectoriales (así como a cualquier otro elemento disponible para dibujarandroid:src). Y si está cambiando los elementos dibujables en tiempo de ejecución, podrá utilizar el mismosetImageResource()método que antes (no hay cambios allí).Utilizando
AppCompatyapp:srcCompates el método más infalible para integrar dibujos vectoriales en su aplicación. Encontrará que hacer referencia directa a los dibujos vectoriales fuera deapp:srcCompatfallará antes de Lollipop .fuente
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
fuente