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.
Algo más es incorrecto, 'setImageBitmap (mapa de bits)' definitivamente las obras. – dmon
Tienes razón. Reemplacé la transmisión de archivos con 'Bitmap escaledPhoto = BitmapFactory.decodeFile ("/mnt/sdcard/"+ Session.PHOTO_FILE_NAME);' y ahora funciona. – chris
Desafortunadamente, tan pronto como agrego una línea de código para escalar la imagen, ya no funciona. Ver la actualización – chris