collapsing collapsible collapsemode bar app android imageview androiddesignsupport

collapsible - expandable toolbar android



No se puede usar srcCompat para ImageViews en Android (10)

Estoy usando Design Support Library 23.2. He agregado estas líneas en mi build.gradle ya que mi Gradle Plugin es la versión 1.5

defaultConfig { applicationId "com.abc.xyz" minSdkVersion 16 targetSdkVersion 23 versionCode 1 versionName "1.0" generatedDensities = [] } aaptOptions { additionalParameters "--no-version-vectors" } }

como se especifica here

Pero no puedo usar el atributo srcCompat para mi imagen.

<ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:srcCompat="@drawable/wallpaper"/>

donde @ drawable / wallpaper es un archivo de recursos vectoriales

<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="24.0" android:viewportHeight="24.0"> <path android:fillColor="#FF000000" android:pathData="M4,4h7V2H4c-1.1,0 -2,0.9 -2,2v7h2V4zm6,9l-4,5h12l-3,-4 -2.03,2.71L10,13zm7,-4.5c0,-0.83 -0.67,-1.5 -1.5,-1.5S14,7.67 14,8.5s0.67,1.5 1.5,1.5S17,9.33 17,8.5zM20,2h-7v2h7v7h2V4c0,-1.1 -0.9,-2 -2,-2zm0,18h-7v2h7c1.1,0 2,-0.9 2,-2v-7h-2v7zM4,13H2v7c0,1.1 0.9,2 2,2h7v-2H4v-7z"/>

Dice

Error: (14) No se encontró un identificador de recurso para el atributo ''srcCompat'' en el paquete ''android''

Mi versión de Gradle es 1.5. ¿Cómo puedo usar srcCompat?


Acabo de cambiar:

app:srcCompat="@drawable/wallpaper"

a

android:src="@drawable/wallpaper"

Esto funcionó para mí.


Combinando muchas respuestas en una respuesta:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:background="@color/primary"> <android.support.v7.widget.AppCompatImageView android:layout_width="300dp" android:layout_height="100dp" android:id="@+id/logoImageView" android:layout_centerHorizontal="true" android:layout_centerVertical="true" app:srcCompat="@drawable/my_logo_vector" android:tint="@color/white" /> </RelativeLayout>

Esto funcionó para mí. No hay errores de pelusa Use AppCompatImageView .


Desde el sitio para desarrolladores de Android

Esta biblioteca es ahora una dependencia de la v7 AppCompat library , lo que permite a los desarrolladores y a AppCompat usar fácilmente los vectores arrastrables.

Para utilizar VectorDrawableCompat dentro de ImageButton o ImageView, use la aplicación: srcCompat XML attribute o setImageResource () method.

Para seguir haciendo referencia a los ID de los atributos en el nivel de API 20 o inferior, agregue el siguiente indicador de appt a su compilación, archivo gradle:

Si está compilando con el complemento de Android para Gradle 1.5.0 o una versión anterior , agregue lo siguiente a su archivo build.gradle:

android { defaultConfig { // Stops the Gradle’s automatic rasterization of vectors generatedDensities = [] } // Flag that tells aapt to keep the attribute ids aaptOptions { additionalParameters "--no-version-vectors" } }

Si está compilando con el complemento de Android para Gradle 2.0.0 o superior , agregue lo siguiente a su archivo build.gradle:

android { defaultConfig { vectorDrawables.useSupportLibrary = true } }


Estás usando android:srcCompat . En su lugar, debe app:srcCompat ya que es un atributo definido dentro de AppCompat, no dentro del android: namespace.


Primero (en build.gradle)

defaultConfig { vectorDrawables.useSupportLibrary = true }

Segundo

<ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" app:srcCompat="@drawable/ic_traffic_black_24dp" tools:ignore="MissingPrefix" />

Tercero

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

Aquí vamos.


actualiza tu plugin de gradle a 2.0+

// Gradle Plugin 1.5 android { defaultConfig { generatedDensities = [] } // This is handled for you by the 2.0+ Gradle Plugin aaptOptions { additionalParameters "--no-version-vectors" }

según las líneas guía de blog del desarrollador de Google

here


hay varias cosas que debes preocuparte antes de nada:

defaultConfig { vectorDrawables.useSupportLibrary = true }

o

vectorDrawables { useSupportLibrary = true }

y Segundo uso

<android.support.v7.widget.AppCompatImageView android:id="@+id/changeLanguages" android:layout_width="50dp" android:layout_height="50dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:adjustViewBounds="true" android:background="@color/transparent" android:scaleType="fitCenter" app:srcCompat="@drawable/ic_transfer" />

Utilice siempre AppCompatImageView o Button porque Vector Image no es compatible con Simple ImageView

si todos los métodos anteriores no funcionan, use

public class App extends Application { @Override public void onCreate() { super.onCreate(); // Make sure we use vector drawables AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); } }

Si está utilizando Activity, amplíe su actividad con AppCompatActivty

public final class MainActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }


necesitas agregar

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

a su diseño para que funcione. Mi "aplicación: srcCompat" se resaltó en rojo hasta que lo agregué.


app:srcCompat llamada app:srcCompat lugar de android:srcCompat .

No lo hagas

android:srcCompat="@drawable/your_image"

HACER

app:srcCompat="@drawable/your_image"

Finalmente

<ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" app:srcCompat="@drawable/wallpaper"/>

Mi versión gradle es 1.5

Actualiza tu versión de Gradle .

Solución

Gradle Plugin 2.0+ com.android.tools.build:gradle:2.0.0-beta2

Los vectores arrastrables le permiten reemplazar múltiples activos png con un solo gráfico vectorial, definido en XML. Aunque anteriormente se limitaba a Lollipop y dispositivos superiores, tanto VectorDrawable como AnimatedVectorDrawable ahora están disponibles a través de dos nuevas bibliotecas de soporte: support-vector-drawable y support-animated-vector-drawable.

Agrega esto

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

Notará que este nuevo atributo solo existe en la versión 2.0 del Plugin de Gradle. Si está utilizando Gradle 1.5, en su lugar utilizará

// Gradle Plugin 1.5 android { defaultConfig { generatedDensities = [] } // This is handled for you by the 2.0+ Gradle Plugin aaptOptions { additionalParameters "--no-version-vectors" } }

Ir a través de here


No lo hagas

android:srcCompat="@drawable/wallpaper"

Hacer

app:srcCompat="@drawable/wallpaper"

ya que el atributo srcCompat se define realmente dentro de la biblioteca de AppCompat .

Importante , deberá agregar el espacio de nombre apropiado para esto.

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

Importante

lo que está obteniendo parece que es solo un error de pelusa que puede ser ignorado. Lo intenté y tengo el mismo error, pero está funcionando correctamente.

puede usar tools:ignore="MissingPrefix" para evitar ver este error temporalmente.