2012-04-04 59 views
1

我創建了一個帶有9patch圖片的按鈕作爲背景。在9patch圖像中,我使用底行和右行來指定內容區域/填充,以將文本放置在按鈕上。這適用於TextView,但在Button上,內容線似乎對文本位置沒有影響。設置「paddingTop」/「paddingBottom」也似乎沒有效果 - 只有「填充」有任何效果。Android - 按鈕上的9patch填充

這是我的佈局XML:

<Button 
      android:layout_width="450dp" 
      android:layout_height="198dp" 
      android:text="Some text here" 
      android:gravity="center" 
      android:background="@drawable/my_button"/> 

有什麼辦法來設置填充?也許我可以使用不同的視圖而不是按鈕?例如,我可以嘗試使用TextView並使其可以點擊,但我不確定這會有什麼其他副作用。

回答

3

設定明確解決android:padding="@null"我的問題。

這個問題似乎是一個按鈕(或我使用的主題中的風格之一)是設置填充,它將覆蓋按鈕中的所有其他填充 - 填充背景可繪製,以及paddingToppaddingLeft

我的按鈕佈局現在定義是這樣的:

<Button 
     android:layout_width="450dp" 
     android:layout_height="198dp" 
     android:text="Some text here" 
     android:gravity="center" 
     android:padding="@null" 
     android:background="@drawable/my_button"/> 

我的IDE(IntelliJ IDEA的11.1)拿起@null爲錯誤,即使它編譯。將它設置爲-1px也可以。

+0

切線相關,有時使用「早期訪問」IDEA版本解決這些解析錯誤:http://confluence.jetbrains.net/display/IDEADEV/IDEA+11.1+EAP – sole 2012-04-04 15:14:48

+0

我提交了一個錯誤報告 - 它似乎將被修復在11.2中 – Ralf 2012-04-04 18:51:30

1

如果您使用9補丁圖像作爲背景,則填充和拉伸區域在背景中定義。

這是相當的圖形,如果你使用draw9patch工具:填充定義(間接)與內容區域(在右側和底部線): http://developer.android.com/guide/developing/tools/draw9patch.html

+2

在9-patch工具中,它完全按照我的需要顯示內容區域,它是在TextView上使用時的情況。但是,當用作Button的背景時,內容區域似乎被忽略。 – Ralf 2012-04-04 11:17:25