Estoy usando la biblioteca de soporte para mostrar imágenes vectoriales en Android Kitkat. Cuando pruebo mi aplicación en Emulater, no veo ninguna de estas imágenes. Hice un diseño separado para Android lollipop y superior y funcionó a la perfección (creo que porque estoy usando el atributo src
lugar de srcCompat
Aquí está el código donde estoy usando la biblioteca de soporte
y es extraño porque veo las imágenes en la ventana de vista previa de android studio.
Utilice android.support.v7.widget.AppCompatImageView
lugar de ImageView
como este:
Consulte los documentos de AppCompatImageView
aquí y la appc:srcCompat
aquí .
Configura tu build.gradle
android { defaultConfig { vectorDrawables { useSupportLibrary = true } } }
Documentos: https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.VectorDrawablesOptions.html#com.android.build.gradle.internal.dsl.VectorDrawablesOptions: useSupportLibrary
Extienda su Activity
con AppCompatActivity
public final class MainActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
Al usar la app:srcCompat
, asegúrese de tener las declaraciones correctas en su diseño:
...
Opcional (advertencia: lea los documentos): setCompatVectorFromResourcesEnabled
en su clase de Application
public class App extends Application { @Override public void onCreate() { super.onCreate(); // Make sure we use vector drawables AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); } }
Tuve un problema similar y después de seguir todos los pasos de la respuesta de Jared Burrows, el problema no se resolvió.
Resulta que el espacio de nombres de la “aplicación” dentro de mi archivo de diseño se configuró como:
xmlns:app="http://schemas.android.com/tools"
en lugar de:
xmlns:app="http://schemas.android.com/apk/res-auto"
Después de cambiar esto, el problema se solucionó
utilizar:
android:background="@drawable/circle_icon"
en lugar de:
app:srcCompat="@drawable/circle_icon"
Además, asegúrate de que los vectores drawable-anydpi
ubicados en drawable
y no en drawable-anydpi
.
drawable-anydpi
a menudo con problemas si los gráficos se encuentran en la carpeta drawable-anydpi
.