traduccion studio paleta nombre icono editar colores color cambiar bar agregar android icons android-5.0-lollipop material-design

studio - ¿Es posible cambiar el color del icono de diseño de material desde xml en Android?



editar toolbar android studio (10)

En realidad estoy tratando de usar iconos de colores en mi aplicación. He descargado el paquete de iconos de diseño de material oficial desde here . Ahora todos los íconos en este paquete son blancos, grises o negros. Pero quiero que los iconos sean de un color diferente. Algo como los iconos en el lado izquierdo en esta imagen . Los iconos de teléfono y correo son azules. ¿Cómo puedo lograr esto?


Agregando a lo que dijo Murali, haga varios dibujos con diferentes colores de relleno.

Luego, cuando sea necesario, agregue a su código:

imageView.setImageResource(R.drawable.drawable_with_different_color)

NO: imageView.setBackgroundResource()


Cómo cambiar el color del icono de material en XML

<ImageButton android:layout_width="YourValue" android:layout_height="YourValue" ... android:tint="YourColor" // this line do the magic />


Como el archivo del icono está en formato .png, debe cambiar el color con la herramienta desde la que creó el icono. y agregarlo usando ImageAsset en proyecto.


Es un archivo .png. Hay muchos editores de imágenes por ahí. Solo tienes que rellenar las partes.


Estaba buscando lo mismo pero para cambiarlo dinámicamente en el código. Espero que esto ayude a alguien que busca lo mismo.

Cree un ImageView para el icono y use setColorFilter en esa vista.

ImageView imageViewIcon = (ImageView) listItem.findViewById(R.id.imageViewIcon); imageViewIcon.setColorFilter(getContext().getResources().getColor(R.color.blue));


Muchas alternativas aquí ya están en este hilo. Tal vez pueda agregar uno más para quien lo encuentre conveniente:

También puede usar la clase Drawable, el código es el siguiente

Resources res = getResources(); Drawable drawable = res.getDrawable(R.drawable.ic_play_circle_filled); drawable = DrawableCompat.wrap(drawable); DrawableCompat.setTint(drawable, getResources().getColor(R.color.colorPrimary));

Aunque lo anterior me sirvió de truco, pero para mi caso de uso, lo más sugerente fue usar android:tint


Para cambiar el color del icono, intente

<ImageButton android:layout_width="your value" android:layout_height="your value" /* and so on ... */ android:tint="YourColor" />

Nota: el color del tinte se pinta en la parte superior de la imagen, no un color de reemplazo. Por lo tanto, el tinte #80ff0000 en una imagen en negro le da un 50% de rojo sobre negro, no un 50% de rojo en el fondo. Es decir, esto no es equivalente a las imágenes de plantillas de iOS.


Puede usar TintImageView dentro de la biblioteca de soporte de appcompat y luego tintar / colorear la vista de imagen es simplemente llamando a android:backgroundTint para teñir la vista de la imagen en un solo color.

Xml

<TintImageView android:layout_width="" android:layout_height="" android:src="" android:backgroundTint="@color/green"/>

o

<ImageView android:tint="the_color_you_want"/>

Programáticamente

ImageView yourImageView = findViewById(...) yourImageView.setColorFilter(Context.getColor(your_color_here))

Por lo tanto, el xml anterior coloreará la imageView para que se torne de color verde, lo que significa que coloreará cada píxel de la vista de imagen que sea visible a verde.


Sí, es posible y es simple usando esta biblioteca: https://github.com/jrvansuita/IconHandler

Usted puede fácilmente llamar a esto:

Icon.on(yourImageView).color(R.color.your_color).icon(R.mipmap.your_icon).put();


<vector android:height="48dp" android:viewportHeight="24.0" android:viewportWidth="24.0" android:width="48dp" xmlns:android="http://schemas.android.com/apk/res/android"> <path android:fillColor="#ca0f0f" android:pathData="M3,5v14c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2V5c0,-1.1 -0.9,-2 -2,-2H5c-1.11,0 -2,0.9 -2,2zm12,4c0,1.66 -1.34,3 -3,3s-3,-1.34 -3,-3 1.34,-3 3,-3 3,1.34 3,3zm-9,8c0,-2 4,-3.1 6,-3.1s6,1.1 6,3.1v1H6v-1z"/> </vector>

cambia de color cambiando android: fillColor = "# ca0f0f"