2013-04-30 45 views
1


我需要在GridView中顯示的ImageView的三列,我想方的圖像以避免這種影響https://www.dropbox.com/s/hjc55ijbf8cdkao/SC20130430-194230.png

這是我的XML代碼:
圖像裁剪以適合在GridView

<?xml version="1.0" encoding="utf-8"?> 

<GridView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/grid_view" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:numColumns="3" 
    android:columnWidth="90dp" 
    android:horizontalSpacing="10dp" 
    android:verticalSpacing="10dp" 
    android:gravity="center" 
    android:stretchMode="columnWidth" > 

</GridView> 

和適配器:

public class PhotoListAdapter extends ArrayAdapter<Photo> { 

Context context; 

// Constructor 
public PhotoListAdapter(Context context, ArrayList<Photo> mPhotoList) { 
    super(context, R.layout.item_album_detail, mPhotoList); 
    this.context = context; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    // Inflating 
    LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    convertView = inflater.inflate(R.layout.item_album_detail, parent, false); 

    // Linking view by id 
    ImageView pic = (ImageView) convertView.findViewById(R.id.current_img); 

    // Get current item 
    Photo item = getItem(position); 

    // Set widget 
    pic.setScaleType(ImageView.ScaleType.CENTER_CROP); 
    ImageDownloader imgd = new ImageDownloader(pic); 
    imgd.execute(item.getPhoto_m()); 

    return convertView; 
} 

} 

在item_album_detail.xml那裏只是一個ImageView的

<ImageView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:contentDescription="@string/desc" 
    android:id="@+id/current_img" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:adjustViewBounds="true" /> 

我希望能獲得這個https://www.dropbox.com/s/i5gimy1lcwyavui/SC20130430-195710.png

回答

1

更改比例類型將解決您的問題。但圖像看起來可能會拉長。

pic.setScaleType(ImageView.ScaleType.FIT_XY);

+0

或者他可以使用ImageView.ScaleType.CENTER_CROP的類似的形式,如果他這樣希望得到最形象在那裏是可以的,但cut-其餘的不適合進入空間。 – 2013-04-30 18:24:54

+0

他已經在使用CENTER_CROP。請檢查張貼的代碼。 – 2013-04-30 18:26:32

+0

對。看起來,他正在使用正確的比例類型,因爲他在第二眼之後連接了他想要的東西。我會重新閱讀這篇文章。 – 2013-04-30 18:39:48

0

你可以嘗試以編程方式更改相對佈局中的大小圖像視圖。我不得不這樣做是爲了讓瓷磚(尺寸相同)

DisplayMetrics displaymetrics = new DisplayMetrics(); 
    mActivity.getWindowManager().getDefaultDisplay() 
      .getMetrics(displaymetrics); 
    int height = displaymetrics.heightPixels/2 
      - (int) convertDpToPixel(1); 
    int width = displaymetrics.widthPixels/2 - (int) convertDpToPixel(1); 

    iv1.setLayoutParams(new RelativeLayout.LayoutParams(width, 
      height)); 
    iv2.setLayoutParams(new RelativeLayout.LayoutParams(width, 
      height)); 
    iv3.setLayoutParams(new RelativeLayout.LayoutParams(width, 
      height)); 
    iv4.setLayoutParams(new RelativeLayout.LayoutParams(width, 
      height));