2011-06-30 22 views
7

Estoy teniendo problemas para conseguir una imagen existente en la tarjeta sd para mostrar.ImageView no mostrará la imagen cuando se ajusta por setImageBitmap()

ImageView _photoView = (ImageView)findViewById(R.id.img_photo); 

File photoFile = new File(Environment.getExternalStorageDirectory(), Session.PHOTO_FILE_NAME); 
rawFileInputStream = new FileInputStream(photoFile); 
Bitmap origPhoto = BitmapFactory.decodeStream(rawFileInputStream, null, new BitmapFactory.Options()); 

_photoView.setImageBitmap(origPhoto); 
Log.d(TAG, origPhoto.getWidth() + " - " + origPhoto.getHeight()); 

La foto existe y las dimensiones mostrará como se muestra, pero no aparece nada en la etiqueta ImageView

<ImageView 
    android:id="@+id/img_photo" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" /> 

Traté de ajustar la altura de un tamaño fijo, pero todavía no puedo mira la foto

que he visto unos pocos puestos en SO respecto a este tema, pero ninguno de ellos ha sido aún respondida.

¿Alguna idea?

** Actualización Si se me carga el archivo directamente, en lugar de a través de una filestream que funciona

Bitmap origPhoto = BitmapFactory.decodeFile("/mnt/sdcard/" + Session.PHOTO_FILE_NAME); 
double scale = MAX_WIDTH * 1.0/origPhoto.getWidth(); 
int height = (int)(origPhoto.getHeight() * scale); 
Bitmap scaledPhoto = Bitmap.createScaledBitmap(origPhoto, MAX_WIDTH, height, true); 
_photoView.setImageBitmap(origPhoto); 

pero si a continuación, añadir el método Bitmap.createScaledBitmap() llamarlo ya no funciona y no se muestra la imagen.

+0

Algo más es incorrecto, 'setImageBitmap (mapa de bits)' definitivamente las obras. – dmon

+1

Tienes razón. Reemplacé la transmisión de archivos con 'Bitmap escaledPhoto = BitmapFactory.decodeFile ("/mnt/sdcard/"+ Session.PHOTO_FILE_NAME);' y ahora funciona. – chris

+0

Desafortunadamente, tan pronto como agrego una línea de código para escalar la imagen, ya no funciona. Ver la actualización – chris

Respuesta

0

Reemplacé la transmisión de archivos con Bitmap scaledPhoto = BitmapFactory.decodeFile ("/ mnt/sdcard /" + Session.PHOTO_FILE_NAME); y ahora funciona (lo que se menciona en la actualización)

Cuestiones relacionadas