android - vectordrawables - Cómo configurar VectorDrawable como una imagen para ImageView mediante programación
vector drawable android gradle (8)
Elimine dos carpetas de su carpeta dibujable y luego reconstruya su proyecto para que funcione correctamente
Quiero configurar algunos vectoresDrawables para un ImageView en Android Studio.
Puedo configurar png y jpg drawable fácilmente, pero cuando quiero configurar VectorDrawable, no funciona en vista de imagen.
img.setImageResource(R.drawable.ic_home);
ic_home es VectorDrawable y este código no funciona.
Para aquellos que desean cargar un vector dibujable programáticamente para otros usos, como establecer un DrawableLeft o de otra manera, puede usar:
Drawable drawable = AppCompatResources.getDrawable(context, drawableRes);
donde el contexto es una AppCompatActivity.
Según el blog oficial de desarrolladores de Android , no hay cambios para el método setImageResource () en el tiempo de ejecución de vectorDrawables.
Si está cambiando los elementos dibujables en el tiempo de ejecución, podrá usar el mismo método setImageResource() que antes, sin cambios allí. Usar AppCompat y app: srcCompat es el método más infalible para integrar vectores dibujables en su aplicación.
Para obtener más detalles, consulte este agradable artículo AppCompat: la antigüedad de los vectores de Google Developer.
Si desea usar vectores dibujables (menos O mayor que API 21) solo haga lo siguiente:
Configure la imagen programáticamente (por ejemplo, en su actividad):
imageView.setImageResource(R.drawable.ic_left_arrow_blue);
o por XML:
app:srcCompat="@drawable/your_vector_name"
En el build.gradle
tu aplicación build.gradle
incluir:
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
Y para soporte de vectores por menos de API 21, agregue lo siguiente a onCreate
:
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
Si le preocupa la compatibilidad con versiones anteriores, debe usar AppCompatImageView
lugar de la vista de imagen. Ir a través del código de abajo.
<android.support.v7.widget.AppCompatImageView
android:id="@+id/iv_about"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
/>
Java
AppCompatImageView image = (AppCompatImageView) findViewById(R.id.iv_about);
image.setImageResource();
Y servirá la perspectiva de la app:srcCompat
.
Tenía un vector en la vista de reciclador. Estaba usando img.setImageResource (R.drawable.ic_home) que no funcionaba correctamente, como alguna otra imagen se formó en algún elemento de la vista de reciclador, luego usé img.setImageDrawable (activity.getResources (). GetDrawable (R.drawable.ic_home)) esto funcionó.
Utilizar esta:
android.support.v7.widget.AppCompatImageButton,
android.support.v7.widget.AppCompatImageView,
android.support.v7.widget.AppCompatTextView
en lugar de ImageButton
, ImageView
etc.
Si se usa imagen de tipo vectorial. Principalmente para vistas personalizadas.
para el uso de Java Code:
formate_img.setImageResource(R.drawable.ic_text);//ic_text is a Vector Image
y para uso XML:
<android.support.v7.widget.AppCompatImageView
android:id="@+id/search_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_weight="1"
ads:srcCompat="@drawable/ic_barcode" //for Vector Image
tools:ignore="VectorDrawableCompat" />