2013-08-16 93 views
0

我在按鈕中添加了一個名爲「star」的圖像,圖片出現了,但它使按鈕變大。將圖像添加到按鈕而不調整大小

<Button 
android:id="@+id/latest_photoB" 
android:layout_height="87dp" 
android:layout_weight="1" 
android:background="#dcdcdc" 
android:drawableTop="@drawable/star" 
android:text="Latest Photos" 
android:textSize="10dp" 
android:textColor="#000000" /> 

我嘗試了許多不同的方法,例如使它成爲imagebutton

我試過android:background = image,但沒有奏效。我如何添加圖片並保持相同尺寸?

+0

你想保持它與大小一樣嗎?如果你設置了背景,那麼設置它應該保持這個尺寸的高度和寬度。 – Eluvatar

回答

0

也許你正在尋找android:setAdjustViewBounds = "false"

+0

我希望按鈕的大小保持不變,一旦它顯示圖像就會變大。 –

0

一個按鈕的默認背景繪製採用的是所謂的九補丁。它將自己調整爲按鈕內容的大小。一個按鈕是一個特殊的TextView,它可以在其四個邊中的每一邊都附上可繪製的(複合可繪製的)。文本和複合繪圖組成Button的內容,這就是按鈕調整大小的原因。

複合可繪製對視圖層次結構進行了優化,因爲它減少了一個非常常見的場景的視圖數量,但它聽起來像是您想要一個ImageView + a按鈕,其中ImageView以與您按鈕時相同的方式響應點擊它?

在這種情況下,包裹的按鈕佈局,內帶一個ImageView的,並設置你onClickListener上的佈局,而不是按鈕

0

擺脫:

android:layout_weight="1" 

而取而代之的是,一個特定的大小爲您的按鈕:

android:layout_height="87dp" 
android:layout_width="50dp" 

希望這會有所幫助。

1

如果您希望按鈕有一個形象的背景,請執行以下操作:

<Button 
    android:id="@+id/latest_photoB" 
    android:layout_height="87dp" 
    android:layout_width="87dp" 
    android:background="@drawable/star" 
    android:text="Latest Photos" 
    android:textSize="10dp" 
    android:textColor="#000000" /> 

如果按鈕應該是固定的大小,layout_weight是不需要的。另外,您還沒有定義layout_weight屬性。我已將其設置爲87dp。根據需要更改它。

+0

layout_width =「87dp」沒有工作 - 它改變了我的按鈕的大小。 –

+0

@DianeWener是否有您想要分配給按鈕的大小?您應該使用該尺寸代替'87dp'。 – Vikram

0

如果您不設置按鈕的高度和寬度,則Android按鈕將包裝內容(與圖像大小相同)。試試這種方式

<Button 
android:id="@+id/latest_photoB" 
android:layout_height="87dp" 
android:layout_width="87dp" 
android:layout_weight="1" 
android:background="@drawable/star" 
android:text="Latest Photos" 
android:textSize="10dp" 
android:textColor="#000000" />