Si tengo el SDK objetivo mínimo para mi aplicación establecida en 4, todas las llamadas a Drawable.createFromStream cambian el tamaño de las imágenes.¿Cómo crear un Drawable de una secuencia sin redimensionarlo?
p. Ej. si la imagen de origen es 480px de ancho y el dispositivo Android mi aplicación se está ejecutando en tiene una densidad de 1,5 a continuación, el código siguiente devuelve un BitmapDrawable con una anchura de 320
URL url = new URL("http://www.examples.com/something.png");
Drawable d = Drawable.createFromStream(url.openStream(), "something.png");
¿Hay un método para forzarlo a ser sin cambios o especifique la escala (ldpi/mdpi/hdpi etC) para devolver una imagen de un InputStream?
Editar: Solución de abajo.
Bitmap b = BitmapFactory.decodeStream(inputStream);
b.setDensity(Bitmap.DENSITY_NONE);
Drawable d = new BitmapDrawable(b);
Me gustaría ir con el método 'BitmapDrawable()' ya que va directo al grano. Está obsoleto, pero no para el nivel 4 de la API. Lo ideal sería usar 'BitmapDrawable (Resource, InputStream)', pero eso no estará disponible para ti hasta API nivel 5. Otra opción es hacer algo como 'BitmapDrawable (Resource, new BitmapFactory() .decodeStream (InputStream)) 'que está disponible en el nivel 4 de API (pero no menos). – DeeV
Esto funciona gracias. He agregado una edición para mostrar cómo convertir a BitmapDrawable. – Johnny