vectoriales - Cómo rellenar objeto de mapa de bits con color en Android
ventajas y desventajas de mapa de bits (3)
Estoy trabajando en un juego para Android y hay algunos problemas que aparecen. Quiero rellenar un color en un objeto de mapa de bits, pero no puedo probar el bitmap.setPixel, pero mi imagen es en formato PNG (como un círculo o unsharp, rodeado de color transparente) y Android no puede obtenerHeight () o getWidth (), es decir,
ImageView i = new ImageView(mContext); Bitmap bMap = BitmapFactory.decodeResource(this.mContext.getResources(), mImageIds[position]);
// for(int i1 = 0; i1 < bMap.getHeight();i1++) // for(int j = 0; j < bMap.getWidth(); j ++) // bMap.setPixel(i1, j, Color.RED); //can not set
i.setImageBitmap(bMap);
i.setLayoutParams(new Gallery.LayoutParams(150, 100));
i.setScaleType(ImageView.ScaleType.FIT_XY);
i.setBackgroundResource(mGalleryItemBackground);
i.setBackgroundColor(Color.TRANSPARENT);
Esta pregunta puede ser antigua, pero hay una solución mucho más simple para esto. En lugar de aplicar un filtro en la imagen de mapa de bits, puede aplicarlo directamente en ImageView:
imageView.setColorFilter(tintColor, PorterDuff.Mode.MULTIPLY);
Puede probar diferentes modos de filtro de color (AGREGAR, BORRAR, OSCURO, MÚLTIPLES, ...) según sus necesidades y el mapa de bits suministrado a su ImageView.
Si no funciona, intente eliminar el modo:
imageView.setColorFilter(tintColor);
Obtenga una copia mutable del mapa de bits mediante el método copy() y modifique sus píxeles.
Si desea rellenar un mapa de bits con un color sólido, intente utilizar
Bitmap b = /*however you get a bmp*/
b.eraseColor(color)
Borra el mapa de bits rellenando todos los píxeles con un color.
Podría ser el efecto que quieras
Peter