2014-10-19 63 views
0

我有一個GridView,我將ImageView添加到並隨機放置drawable作爲生成網格的資源,如下圖所示。在GridView中對齊和縮放圖像

我想縮放圖像,以便他們之間的唯一差距將是填充,我也想要匹配它之間的間距,列之間的行,使gridView將永遠是一個正方形適合屏幕的寬度(加上邊距)。圖像之間的最小差距將是我設置的填充,所以如果屏幕大或小,圖像將按比例放大或縮小以適應網格視圖的寬度。

那麼我該怎麼做呢?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="#FFFFFF" > 

<GridView 
    android:id="@+id/grid" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="10dp" 
    android:layout_marginRight="10dp" 
    android:layout_centerInParent="true" 
    android:layout_marginTop="50dp" 
    android:columnWidth= "50dp" 
    android:stretchMode="spacingWidthUniform" 
    android:gravity="center" 
    android:clickable="true"> 

</GridView> 

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

      if (convertView == null) { 
      randomPosition = rng.nextInt(gridSize); 
      imageView = new ImageView(mContext); 
      imageView.setPadding(2, 2, 2, 2); 
      } 
      else { 
       imageView = (ImageView) convertView; 
      } 

      imgSet(); 
      return imageView; 
    } 

    public void imgSet(){ 
     if (diff == 1){ 
      imageView.setImageResource(mThumbIds[randomPosition]); 
     } 
     if (diff == 2){ 
      imageView.setImageResource(mThumbIds2[randomPosition]); 
     } 
     if (diff == 3){ 
      imageView.setImageResource(mThumbIds3[randomPosition]); 
     } 
    } 

My GridView filled with imageViews displaying circle drawables

回答

0

如果圖像縮放是你的問題,你可以嘗試縮放imagees以適合ImageView的,並把它們對電網..

嘗試機器人: scaleType =「fitXY」

嘗試scaleType中的其他選項也作爲pe你的需求

+0

會有一種方法來匹配網格的高度與寬度? – MDubzem 2014-10-19 01:51:11

+0

我還需要在創建圖像視圖的代碼中設置縮放類型,而不是在xml中,所以我不確定如何設置縮放類型,我看到我想要的類型是合適的中心 – MDubzem 2014-10-19 02:06:33

+0

@MDubzem如果你需要通過代碼設置它使用yourimageview.setScaleType(ScaleType.FIT_XY); [這裏是開發鏈接] http://developer.android.com/reference/android/widget/ImageView.ScaleType.html) – 2014-10-20 07:25:10