2013-06-24 59 views
0

我在每行中使用3行和3個圖像按鈕的TableLayout。我想保持圖像的寬高比。TableLayout的最後一列奇怪的imagebutton縮放比例

我已經定義了一個佈局是這樣的:

<TableLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="10dp" 
    android:background="#000000" 
    android:padding="0dp" > 

    <TableRow 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:padding="0dp" > 

     <ImageButton 
      android:layout_weight="1" 
      android:adjustViewBounds="true" 
      android:contentDescription="@string/Cell" 
      android:padding="0dp" 
      android:scaleType="fitCenter" 
      android:src="@drawable/empty" > 
     </ImageButton> 

     <!-- Two more images like above --> 

    </TableRow> 

    <!-- Two more rows like above --> 
</TableLayout> 

有了這個佈局,我得到的是這樣的:

http://i.stack.imgur.com/reoSd.png

正如你可以看到在過去的行之間,怪洞列出現。我不知道爲什麼,但如果我改變TableLayout保證金0dp,這個問題自敗:

<TableLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="0dp" 
    android:background="#000000" 
    android:padding="0dp" > 

而結果:

http://i.stack.imgur.com/Jytix.png

爲什麼這種行爲?我做錯了什麼?我已經測試了這個,在模擬器上有很多設備,我總是可以得到相同的結果。作爲附加信息,我已經用getHeight()和getWidth()...打印了最後一列圖像的大小和填充,並且第一次使用了填充,我總是完全一樣。

回答

0

我有這個問題,你應該使用相對佈局,而不是...如果你還是想用Table佈局,嘗試:

TableLayout tableView = (TableLayout) findViewById(R.id.tableView); 
TableRow row = (TableRow) inflater.inflate(R.layout.tablerow, tableView, false); 
ImageView imgDis = (ImageView) row.findViewById(R.id.spinnerEntryContactPhoto); 
    imgDis.setPadding(5, 5, 5, 5); 
    imgDis.setAdjustViewBounds(true); 

    // set row height width 

TableRow.LayoutParams params = new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, 50); 

    params.topMargin = 0; 
    params.bottomMargin = 0; 
    params.leftMargin = 0; 
    params.rightMargin = 0; 

希望這有助於

+0

感謝您的回答!我很忙,以前我沒有回覆。 我一直在嘗試使用RelativeLayout,但問題是...我不能使用RelativeLayout的weight屬性。我應該使用絕對寬度,我試圖避免它。 我更喜歡不使用你的Java解決方案,因爲我仍然是android的noob,我不明白代碼,並且我認爲使用XML來定義GUI更好。 – user2515800