2013-06-27 228 views
0

我正在嘗試調整從相機庫中獲取的圖像以適合ImageView在另一個活動中的大小。我正在獲取圖像。我只需要知道如何調整它以適應ImageView。如何調整圖像的大小

image1.setOnClickListener(new View.OnClickListener() { 
public void onClick(View arg0) { 
Intent intent = new Intent(); 
intent.setType("image/*"); 
intent.setAction(Intent.ACTION_GET_CONTENT); 
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 0); 
} 
}); 
} 
protected void putExtras(Bundle bundle) { 
     // TODO Auto-generated method stub 

    } 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == RESULT_OK) { 
     if (requestCode == 0) { 
      Uri selectedImageUri = data.getData(); 
      selectedImagePath = getPath(selectedImageUri); 
      System.out.println("Image Path : " + selectedImagePath); 
      image1.setImageURI(selectedImageUri); 
    }}} 
public String getPath(Uri uri) { 
    String[] projection = { MediaStore.Images.Media.DATA }; 
    Cursor cursor = managedQuery(uri, projection, null, null, null); 
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
    cursor.moveToFirst(); 
    return cursor.getString(column_index); 

我的XML

  <ImageView 
     android:id="@+id/image1" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_margin="3dp" 
     android:layout_weight=".1" 
     android:background="@drawable/greenline" />      

回答

1

你的問題纔有意義,如果在ImageView的具有確定尺寸的圖像可以安裝在做這件事。當您將layout_width設置爲wrap_content時,則恰恰相反。 ImageView將環繞圖像並且看起來不是你想要的。所以你需要爲layout_width,layout_height使用match_parent,或者指定一個像30dip或者類似的具體尺寸。一旦你有,你可以使用android:scaleType作爲別人提到。

所以你的ImageView改變這樣的事情:

<ImageView 
     android:id="@+id/image1" 
     android:layout_width="match_parent " 
     android:layout_height="match_parent " 
     android:scaleType="center" 
     android:layout_margin="3dp" 
     android:layout_weight=".1" 
     android:background="@drawable/greenline" /> 

哪個scaleType使用取決於圖像應該如何被安裝在ImageView的,有或無縮放和種植等

+0

它適用於寬度但不是高度。我一定做錯了什麼。我稍後再回來。 – SmulianJulian

+0

如果你詳細說明「不適用於高度」,我可能會給你一些建議 –

+0

我有很多TextViews和按鈕在TableRow和。 image1只是一個小視圖。我有每個按鈕和表設置爲match_parent。圖片的寬度就像我想要的一樣,但高度太大 – SmulianJulian

1

您可以設置android:scaleType屬性的ImageView的。更多細節可以參見here

1

你可以嘗試使用Bitmap.createScaledBitmap()如果編程