2011-04-26 73 views
1

我有這個問題,我的圖片沒有縮小〜正確地在我編程創建的Tablelayout中。在Android中正確顯示圖片在桌面佈局中正確顯示圖片

This is what I'm currently getting

,這裏是我的代碼:

final TableLayout grd_overview = (TableLayout)this.findViewById(R.id.tbl_overview); 
grd_overview.setShrinkAllColumns(true); 

Integer[] mThumbIds = { R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_1,R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_1}; 

int x = 0; 
for (int j = 0; j <= 5; j++) { 

    TableRow tr = new TableRow(this); 
    tr.setLayoutParams(new TableRow.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); 

     for (int i = 0; i <= 5; i++) { 
      ImageView iv = new ImageView(this); 
      iv.setImageResource(mThumbIds[x]); 
      tr.addView(iv); 
      x++; 
     } 
    grd_overview.addView(tr);    
} 

XML:

<TableLayout 
     android:id="@+id/tbl_overview" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

我有不知道如何收縮行所有ImageView小號配合完美地結合在一起。底部屏幕截圖上的圖片只比他們應該的小。

回答

0

你可以初始化每個ImageViewfor週期內之後添加以下代碼行:

iv.setScaleType(ScaleType.FIT_CENTER); 

或者選擇縮放最適合您需求的類型。

您可以閱讀更多關於ScaleTypes here,以及約scaling matrice algorithms,例如。這FIT_CENTER做什麼。

+0

謝謝:) FIT_CENTER沒有很好的工作,所以我用FIT_XY。這只是使圖像適合X軸和Y軸。儘管(原始圖片是方形的),新圖片呈矩形。最底部的照片佔用了剩餘的空間。新問題是:我怎樣才能讓Tableview的高度達到顯示器的寬度? – JustBasti 2011-04-26 19:02:04

+0

沒想到,在我試圖找出這個問題之後,我會做一個新的線程。 – JustBasti 2011-04-26 19:07:36

+0

這就是'FIT_XY'應該做的事情(拉伸第二個矩形以匹配第一個矩形)。另一方面,您可以使用DisplayMetrics:getBaseContext()。getResources()。getDisplayMetrics()。widthPixels)來獲取顯示寬度。 – rekaszeru 2011-04-26 19:37:03