Archivo de imagen I have.png almacenado como un recurso en mi aplicación de Android. En mi código, yo soy allocationg nueva instancia de Bitmap de esa imagen de la siguiente manera:Dimensiones incorrectas de la imagen en android cuando se usa Bitmap
Bitmap img = BitmapFactory.decodeResource(getResources(), R.drawable.imgName);
Pero cuando leí las dimensiones de imagen del objeto de mapa de bits utilizando getWight() y getHeight() métodos,
int width = img.getWidth();
int height = img.getHeight();
Recibo diferentes resultados de la imagen original ... ¿Puede alguien explicarme qué es lo que me falta y cómo puedo recuperar el tamaño de la imagen?
(Mi proyecto se cumple con Android 2.2 - API 8)
Editar: Ok - descubrió cómo obtener las dimensiones reales: ajuste inJustDecodeBounds
propiedad de la clase BitmapFactory.Options
a la verdadera de la siguiente manera:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeResource(getResources(), R.drawable.imgName, options);
width = options.outWidth;
height = options.outHeight;
el problema ahora es que el decodificador devuelve null cuando enviamos Options
argumento, por lo que es necesario para decodificar otra vez como lo hacía antes (sin argumento Options
...) para recuperar Bitmap
-bizarre ejemplo, ¿no es cierto?
Gracias por su respuesta, pero ¿sabe si hay una forma de obtener el tamaño de imagen "real"? –
@ET La forma más fácil es codificarla en forma rígida. De todos modos, sabrá el tamaño de la imagen que ha puesto en la carpeta dibujable. Francamente, no he intentado obtener el tamaño real. – manjusg
No puedo usar esta solución ya que las imágenes son bastante dinámicas y pueden recuperarse del servicio web en el futuro. Además, tengo muchas imágenes :) –