2011-06-30 6 views
7

Görüntülenecek sdkartında varolan bir görüntüyü almakta sorun yaşıyorum.ImageView, setImageBitmap() tarafından ayarlandığında görüntüyü göstermez.

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()); 

fotoğraf var olmadığını ve görüntülendiği gibi boyutlar ortaya, ama hiçbir şey sabit boyuta yüksekliğini ayarlamak çalıştı

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

ImageView etiketi içinde görünür, ama yine de yapamam fotoğrafı gör.

Bu konuyla ilgili SO üzerinde birkaç yayın gördüm, ancak bunların hiçbiri henüz yanıtlanmadı.

Herhangi bir fikrin var mı?

** Güncelleme Ben dosyayı yüklerseniz doğrudan yerine bir filestream aracılığıyla o

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); 

çalışır ama sonra diyoruz Bitmap.createScaledBitmap() yöntemi eklerseniz artık çalışıyor ve görüntü gösterilmez.

+0

Başka bir şey yanlış, 'setImageBitmap (Bitmap)' kesinlikle çalışır. – dmon

+1

Haklısın. Dosyayı Bitmap scaledPhoto = BitmapFactory.decodeFile ("/ mnt/sdcard /" + Session.PHOTO_FILE_NAME)) ile değiştirdim; şimdi çalışıyor. – chris

+0

Maalesef, görüntüyü ölçeklendirmek için bir kod satırı eklediğimde, artık çalışmıyor. Güncelleştirmeye bakın – chris

cevap

0

Bitmap scaledPhoto = BitmapFactory.decodeFile ("/ mnt/sdcard /" + Session.PHOTO_FILE_NAME) ile dosya akışını değiştirdim; ve şimdi çalışır (Güncelleştirmede belirtilen)