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

447

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

Farha Ansari
fuente
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.

Graeme Duncan
fuente
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);
Manoj
fuente
¡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.

Zulaxia
fuente
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
35

Documentación oficial de Bitmapdrawable

Esta es una muestra de cómo convertir un mapa de bits a dibujable

Bitmap bitmap;  
//Convert bitmap to drawable
Drawable drawable = new BitmapDrawable(getResources(), bitmap);
imageView.setImageDrawable(drawable);
Cristiana Chavez
fuente
lo siento ... no
hablaba en
55
Podría haber votado en lugar de escribir la misma respuesta.
CopsOnRoad
31

Solía ​​con contexto

//Convert bitmap to drawable
Drawable drawable = new BitmapDrawable(context.getResources(), bitmap);
Samuel Ivan
fuente
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); 
Pir Fahim Shah
fuente
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);
}
Joolah
fuente
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);
Sanjayrajsinh
fuente
1

aqui hay otro más:

Drawable drawable = RoundedBitmapDrawableFactory.create(context.getResources(), bitmap);
SolidSnake
fuente
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);
amosu dona
fuente