2015-06-05 61 views
0

我目前的Android應用程序允許用戶選擇他們在其設備上具有的任何照片。如何在Android應用程序中顯示照片而不失真

我用這個代碼,以顯示所有照片,讓用戶選擇

final Intent intent = new Intent(); 
       intent.setType("image/*"); 
       intent.setAction(Intent.ACTION_GET_CONTENT); 
       startActivityForResult(Intent.createChooser(intent, "Select Picture"), SELECT_PICTURE); 

一旦照片被選中,我在我的應用程序的主要活動上進行展示。

我的主要活性採用的LinearLayout如下: -

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:weightSum="10" > 

    <ImageView 
     android:id="@+id/photograph" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="8" 
     android:src="@drawable/ic_launcher" /> 

    <Button 
     android:id="@+id/select_photo" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="2" 
     android:text="Photo Select" /> 

</LinearLayout> 

我使用此代碼在我的申請

@Override 
public void onActivityResult(final int requestCode, final int resultCode, final Intent data) { 
    if (resultCode == RESULT_OK) { 
     if (requestCode == SELECT_PICTURE) { 
      Uri imageUri = data.getData(); 
      try { 
       final Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri); 
       imageView.setImageBitmap(bitmap); 
      } catch (FileNotFoundException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      }  
     } 
    } 
} 

所選照片從不正確dislayed,例如,以顯示照片他們被扭曲到一個更小或更大的程度。

我如何確保選擇的照片以正確的尺寸/比例顯示?

回答

1

無論大小你ImageView爲「正確的尺寸/比例」,或使用android:scaleType指示要如何縮放圖像,當它被應用到ImageView

相關問題