Estoy trabajando en Android y hay algún problema aparecen
Quiero llenar de color en el objeto de mapa de bits, pero no se puede
Traté de mapa de bits.setPixel pero mi Imagen es PNG (como un círculo o un desenfoque, rodeado de color transparente) y android no puede getHeight() o getWidth(), es decir,

ImageView i = nuevo ImageView(mContext); 
mapa de bits bMap = BitmapFactory.decodeResource(este.mContext.getResources(), mImageIds[posición]);

 

//for(int i1 = 0; i1 < bMap.getHeight();i1++) //for(int j = 0; j < bMap.getWidth(); j ++) //bMap.setPixel(i1, j, Color.ROJO); //no se puede establecer

i.setImageBitmap(bMap);
i
.setLayoutParams(new Gallery.LayoutParams(150, 100));
i
.setScaleType(ImageView.ScaleType.FIT_XY);
i
.setBackgroundResource(mGalleryItemBackground);
i
.setBackgroundColor(Color.TRANSPARENT);

OriginalEl autor Minh Khac | 2010-07-17

3 Comentarios

  1. 44

    Si desea llenar un mapa de bits con un color sólido puede intentar usar

    Bitmap b = /*however you get a bmp*/
    b.eraseColor(color)

    Se borra el mapa de bits mediante la cumplimentación de todos los píxeles con un color.

    Podría ser el efecto que desea

    Pedro

    OriginalEl autor Peter

  2. 3

    Esta pregunta puede ser viejo, pero no es una solución mucho más sencilla para esto.
    En lugar de aplicar un filtro sobre la imagen de mapa de bits, se puede aplicar en el ImageView directamente:

    imageView.setColorFilter(tintColor, PorterDuff.Mode.MULTIPLY);

    Usted puede tratar de colores diferentes modos de filtro (AÑADIR, BORRAR, OSCURECER, MULTIPLICAR, …) dependiendo de sus necesidades y las de mapa de bits proporcionado a su ImageView.

    Si no funciona, pruebe a quitar el modo:

    imageView.setColorFilter(tintColor);

    OriginalEl autor chteuchteu

  3. 1

    Obtener un mutable copia del mapa de bits del copia() método, y modificar los píxeles.

    OriginalEl autor ognian

Dejar respuesta

Please enter your comment!
Please enter your name here