2010-03-10 16 views
374

¿Cómo puedo convertir una imagen de mapa de bits en dibujable?¿Cómo convertir un mapa de bits a Drawable en android?

Gracias, Farha

+2

Hola Tengo la respuesta de su pregunta, siga este enlace y obtuvo la respuesta correcta lo hago. y yo éxito, espero que tenga el éxito. mejor de las suertes http://www.androidsnippets.com/convert-bitmap-to-drawable –

+2

contribución es una gran manera de decir Gracias ... :) Las contribuciones en términos de dar respuestas ... :) – Farhan

+0

@Farhan k ....... – Abhi

Respuesta

236

Suena como que desea utilizar BitmapDrawable

De la documentación:

Un Drawable que envuelve un mapa de bits y puede ser de mosaico, se estira o se alinea. Usted puede crear un BitmapDrawable desde una ruta de archivo , una secuencia de entrada, a través de inflación XML, o desde un objeto Bitmap .

+18

@Deprecated Utilice BitmapDrawable (Resources, Bitmap) para asegurarse de que el dibujo dibuja correctamente su densidad objetivo. –

+62

publicación no útil, comentario no útil. Sería mejor si agrega un código – voghDev

739

Prueba esto se convierte una imagen Bitmap tipo de Drawable

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

@Deprecated Utilice BitmapDrawable (Resources, Bitmap) para asegurarse de que el dibujo haya establecido correctamente su densidad objetivo. Crear dibujable a partir de un mapa de bits, no se ocupa de la densidad. – Murphy

+17

Debería haber marcado esto con un edit @ViliusK para que las personas no lean el comentario altamente modificado y se pregunten de qué están hablando. –

130

Después de haber visto una gran cantidad de problemas con los mapas de bits de forma incorrecta escalamiento cuando se convierte a un BitmapDrawable, la forma general de convertir debe ser:

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

Sin el Resources reference, es posible que no se visualice correctamente, incluso cuando se ha escalado correctamente. Hay numerosas preguntas aquí que se resolverían simplemente mediante el uso de este método en lugar de una llamada directa con solo el argumento bitmap.

+9

Al menos comenta por qué si vas a votar abajo.Esta es una respuesta perfectamente válida, y aporta información adicional para resolver problemas que pueden ocurrir con las otras respuestas ofrecidas. Los dibujos elaborados directamente desde un mapa de bits a menudo tienen errores de escala sin la referencia getResources(). – Zulaxia

+3

esta es una respuesta más precisa ya que la de @Manoj está en desuso. – Raykud

19

Si usted tiene una imagen de mapa de bits y desea utilizarlo en estirable, como

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

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

+1

@schlingel Todavía funciona bien y muchos de nosotros lo estamos usando en nuestros proyectos, –

+1

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

29

oficial Bitmapdrawable documentation

Ésta es la muestra de cómo convertir bitmap to drawable

Bitmap bitmap; 
//Convert bitmap to drawable 
Drawable drawable = new BitmapDrawable(getResources(), bitmap); 
imageView.setImageDrawable(drawable); 
+0

Respuesta duplicada con http://stackoverflow.com/a/4560707/517381 – ViliusK

+0

Respuesta duplicada – Daniel

+0

perdón ... no lo decía en serio – Abhi

10

Justo 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 –

21

he usado con el contexto

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

Respuesta duplicada. – CopsOnRoad

Cuestiones relacionadas