Mujer Boots comprar Chile 3863341 BotinesLow palladium Madrid Florido palladium Zapatos Hilo Pampa N8nXZOPkw0
/ Flaco delicado Tiendas Ralph ralph Camisas PurpleRopa Lauren Polo TKclF1J / Es dibujable un singleton - Android, colores, imagen de fondo, dibujable en android

Tiene un comportamiento no seguro si es como debe ser. Si el dibujo utilizado en el fondo de la vista ES una instancia compartida con otras vistas, ¿cómo cambiar el color del individuo?

teniendo R.drawable.circle_shape como:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<corners android:radius="10dip"/>
<solid android:color="#cccccc"/>
</shape>

Mujer Boots comprar Chile 3863341 BotinesLow palladium Madrid Florido palladium Zapatos Hilo Pampa N8nXZOPkw0

utilizado como dos instancias en un fragmento

    <ImageView
android:id="@+id/circle_1”
android:layout_width="22dp"
android:layout_height="22dp"
android:gravity="center"
android:layout_gravity="center"
android:background="@drawable/circle_shape"
android:shadowRadius="10.0"
/>

<ImageView
android:id="@+id/circle_2”
android:layout_width="22dp"
android:layout_height="22dp"
android:gravity="center"
android:layout_gravity="center"
android:background="@drawable/circle_shape"
android:shadowRadius="10.0"
/>

el otro uso es para la plantilla del elemento de la lista en otro fragmento

    <ImageView
android:id="@+id/listItem_image”
android:layout_width="22dp"
android:layout_height="22dp"
android:gravity="center"
android:layout_gravity="center"
android:background="@drawable/circle_shape"
android:shadowRadius="10.0"
/>
Nike Zapatillas Online Max nike De Los Hombres comprar Flyknit Tavas Venta Corrientes Voltio Air nike Zapatos Outlet Gris xWdoCeQrBE

cuando cambio el color del círculo para la instancia c1, noté que c2 y listItem_image también cambian de color.

View c1 = (View) findViewById(R.id. circle_1);
c1.setBackgroundResource(R.drawable.circle_shape);  // with or without this it will still affect the other ImageView which also uses R.drawable.circle_shape as background

((GradientDrawable) c1.getBackground()).setColor(intColor);
((GradientDrawable) c1.getBackground()).setStroke(0, Color.TRANSPARENT);

Respuestas

1 para la respuesta № 1

No es realmente un singleton, pero tu conjetura está en eldirección correcta. Cuando obtienes un dibujable, comparte el estado con otros dibujables. Es por eso que cuando modifica uno de ellos, modifica todos los elementos dibujables que comparten el estado con él.

Lo que debes hacer es dibujar mutar Para que se cree un nuevo estado. En tu caso se verá algo así:

Mujer Boots comprar Chile 3863341 BotinesLow palladium Madrid Florido palladium Zapatos Hilo Pampa N8nXZOPkw0
GradientDrawable drawable = ((GradientDrawable) c1.getBackground()).mutate();
drawable.setColor(intColor);
drawable.setStroke(0, Color.TRANSPARENT);

La primera línea crea un nuevo estado, que permite que las siguientes dos líneas cambien solo el estado de este dibujo en particular.


preguntas relacionadas

Negro Sandalias Pasquini Efecto Zapatos Para De Mujer Ante Aplicaciones Sandalia Metal Chiara w0vO8nmN
Archivo de recursos dibujables - Imagen cambiante - java, android, dibujable, xml-dibujable Mujer Boots comprar Chile 3863341 BotinesLow palladium Madrid Florido palladium Zapatos Hilo Pampa N8nXZOPkw0
Mujer Boots comprar Chile 3863341 BotinesLow palladium Madrid Florido palladium Zapatos Hilo Pampa N8nXZOPkw0 ¿Cómo se puede escalar y mosaico un mapa de bits dibujable que se utiliza como fondo? - Android, diseño de Android
Android: color del borde GridView. Sin fondo [cerrado] - Android, gridview, colores, fondo, borde Mujer Boots comprar Chile 3863341 BotinesLow palladium Madrid Florido palladium Zapatos Hilo Pampa N8nXZOPkw0