Crear dibujable desde mapa de bits

TODAS,

Como se sugiere aquí necesito hacer un dibujable fuera de mi mapa de bits. Pero cuando traté de usar:

Drawable d = new Drawable( my_bmp); 

Muestra que este constructor está obsoleto en favor de:

  Drawable(Bitmap bmp, int resourceId) 

¿Cómo puedo hacer un drawable fuera del mapa de bits?

Gracias.

Puedes usar

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

A Drawable que envuelve un mapa de bits y puede ser mosaico, estirado o alineado. Puede crear un BitmapDrawable desde una ruta de acceso de archivo, un flujo de entrada, a través de inflación de XML o desde un objeto Bitmap.

BitmapDrawable(Resources res, Bitmap bitmap)

Crea dibujable desde un mapa de bits, estableciendo la densidad de destino inicial en función de las métricas de visualización de los recursos.

También mirar a los constructores públicos @

http://developer.android.com/reference/android/graphics/drawable/BitmapDrawable.html

Intenta cargar Bitmap como Bitmap Drawable

Crear ImgDrawableFromFile(Resources res, String file_name) como a continuación

 Drawable d = null; public Drawable ImgDrawableFromFile(Resources res, String file_name) { myBitmap = null; File imgFile = new File( "/data/data/yourpkgname/app_my_sub_dir/images/" + file_name); if (imgFile.exists()) { myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath()); if (myBitmap != null) { d = new BitmapDrawable(res, myBitmap); return d; } else { return null; } } return null; } 

Ahora se llama esta función como

 img.setBackgroundDrawable(ImgDrawableFromFile(getResources(), "1.jpg")); // pass your saved file name as second argument 

Puede utilizar la clase BitmapDrawable para obtener una Drawable de un mapa de bits

Referencia de mapa de bits

BitmapDrawable(Bitmap bitmap) ha quedado deprecated

puedes usar

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

fuente

Un poco tarde para la fiesta, pero veo un claro malentendido. Las respuestas proporcionadas son efectivamente correctas:

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

En este caso, getResources() es un método disponible en el Context o la Activity y sólo se utiliza para averiguar la densidad de la pantalla y ajustar el Drawable en consecuencia.

Así que Igor, incluso si está cargando la imagen desde la nube, todavía puede llamar a getResources ().

Codificación feliz

Si Mauro Banze llegaba tarde a la fiesta, entonces realmente no sé lo que estoy haciendo aquí. Pero para los que vienen aquí desesperadamente buscando una solución, esto es lo que hice:

Me tropecé un poco el mismo problema al traer un proyecto de JavaFX a Android. Quería reutilizar la mayoría de mis clases de "datos" que sólo gestionan y proporcionan mis datos y no tienen ningún efecto en la interfaz de usuario.

Basta contar historias, aquí vamos:

Problema:

  • En algún momento necesitamos un Drawable para salir Bitmap en la pantalla.
  • Queremos descargar (desde la nube, Internet o donde sea) este mapa de bits y guardarlo para uso posterior como Drawable
  • No podemos hacerlo en una clase sin Context o sin Activity , ya que necesitamos los Resources .

Entonces, ¿por qué no lo guardamos como un Bitmap hasta que lo necesitamos para dibujarlo (lo que sin duda ocurrirá en una clase de Context o de Activity ).

He creado una clase llamada BitmapImage . Se parece a esto:

 public class BitmapImage { private final Bitmap bitmap; public BitmapImage (Bitmap bitmap) { this.bitmap = bitmap; } public Bitmap getBitmap() { return bitmap; } public Drawable getDrawable(Resources res) { return new BitmapDrawable(res,getBitmap()); } 

Esta clase muy simple "guarda" el mapa de bits. Por lo tanto, en lugar de trabajar con un Drawable trabajas con BitmapImage hasta que necesites desesperadamente el Drawable .

En ese momento, deberías estar en tu Activity o Context y allí puedes llamar Drawable foo = anyBitmapImage.getDrawable(getResource()) .

  • Guardar mapa de bits en la tarjeta SD
  • ¿Cómo puedo pasar un objeto Bitmap de una actividad a otra?
  • ¿Cómo puedo transformar un Bitmap en un Uri?
  • OOM cuando se utiliza NetworkImageView (de Volley biblioteca)
  • Android: Bitmap recycle () ¿cómo funciona?
  • Cómo manejar Loading Images in Android
  • ¿Cómo convertir LayerDrawable a Bitmap?
  • Cambiar el tamaño de un mapa de bits
  • Fábrica de mapas de bits de Android sin memoria Segunda foto
  • Convertir Bitmap a Byte matriz sin método de compresión en android
  • Cómo agregar brillo externo a mapa de bits?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.