¿Cómo convertir un mapa de bits a Drawable en Android?


447

¿Cómo puedo convertir una imagen de mapa de bits en Drawable?


2
Hola, recibí la respuesta a tu pregunta, sigue este enlace y obtuve la respuesta correcta, lo hago. y yo éxito, espero que hayas tenido éxito. mejor suerte androidsnippets.com/convert-bitmap-to-drawable
Zala Janaksinh

2
La contribución es una excelente manera de decir gracias ... :) Contribuciones en términos de dar respuestas ... :)
Farhan

@Farhan k .......
Abhi

Respuestas:


265

Suena como si quisieras usar BitmapDrawable

De la documentación:

A Drawableque envuelve un mapa de bits y puede ser en mosaico, estirado o alineado. Puede crear una BitmapDrawabledesde una ruta de archivo, una secuencia de entrada, a través de la inflación XML o desde un Bitmap objeto.


21
@Deprecated Use BitmapDrawable (Resources, Bitmap) para asegurarse de que el dibujable haya establecido correctamente su densidad objetivo.
Camille Sévigny

79
publicación no útil, comentario no útil. sería mejor si agrega algún código
voghDev

827

Pruebe esto, convierte una Bitmapimagen tipo aDrawable

Drawable d = new BitmapDrawable(getResources(), bitmap);

¡Esto es lo que esperaba!
mazend

147

Habiendo visto una gran cantidad de problemas con los mapas de bits que se escalan incorrectamente cuando se convierten a BitmapDrawable, la forma general de convertir debería ser:

Drawable d = new BitmapDrawable(getResources(), bitmap);

Sin el Resources reference, es bitmapposible que no se procese correctamente, incluso cuando se escala correctamente. Aquí hay numerosas preguntas que se resolverían simplemente usando este método en lugar de una llamada directa con solo el bitmapargumento.


12
Al menos comente por qué si va a rechazar el voto. Esta es una respuesta perfectamente válida y brinda información adicional para resolver problemas que pueden ocurrir con las otras respuestas ofrecidas. Los dibujos dibujados directamente desde un mapa de bits a menudo tienen errores de escala sin la referencia getResources ().
Zulaxia

44
Esta es una respuesta más precisa teniendo en cuenta que la de @Manoj está en desuso.
Raykud


31

Solía ​​con contexto

//Convert bitmap to drawable
Drawable drawable = new BitmapDrawable(context.getResources(), bitmap);

55
Respuesta duplicada
CopsOnRoad

19

Si tiene una imagen de mapa de bits y desea usarla en dibujable, como

Bitmap contact_pic;    //a picture to show in drawable
drawable = new BitmapDrawable(contact_pic); 

20
Eso está en desuso ahora. Utilice el constructor BitmapDrawable (Resources, Bitmap) ahora.
schlingel

1
@schlingel Sigue funcionando bien y muchos de nosotros lo estamos usando en nuestros proyectos,
Pir Fahim Shah

2
Eso es bueno para ti, pero no ayuda cuando Google finalmente mata a este constructor y tienes que reescribir todo.
schlingel

@schlingel sí, pero todavía alguien apurado usa esto y hace un trabajo
Pir Fahim Shah

11

Solo haz esto:

private void setImg(ImageView mImageView, Bitmap bitmap) {

    Drawable mDrawable = new BitmapDrawable(getResources(), bitmap);
    mImageView.setDrawable(mDrawable);
}

1
No es la solución para lo que está pidiendo
IIRed-DeathII

3

1) mapa de bits a Drawable:

Drawable mDrawable = new BitmapDrawable(getResources(), bitmap);
// mImageView.setDrawable(mDrawable);

2) dibujable a Bitmap:

Bitmap mIcon = BitmapFactory.decodeResource(context.getResources(),R.drawable.icon_resource);
// mImageView.setImageBitmap(mIcon);

1

aqui hay otro más:

Drawable drawable = RoundedBitmapDrawableFactory.create(context.getResources(), bitmap);

0

mapa de bits encubierto a dibujable en la aplicación sketchware usando código

    android.graphics.drawable.BitmapDrawable d = new android.graphics.drawable.BitmapDrawable(getResources(), bitmap);
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.