2012-07-06 44 views
5

我需要中間有文字和文字左邊圖標的按鈕。以圖片和文字爲中心的按鈕

我的按鈕:

<Button 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:onClick="" 
      android:text="@string/search_button" 
      android:textColor="@drawable/button_text" 
      android:layout_weight="1" 
      android:background="@drawable/button" 
      android:drawableLeft="@drawable/new_star_nonactive" /> 

我需要按鈕,寬度FILL_PARENT(全屏幕寬度)

,但我有這樣的: enter image description here

如何設置圖像位置中心,靠近文本?

回答

14

那麼唯一的辦法就是使用填充。在你的情況下,你希望圖像移動到右側,所以使用android:paddingLeft="50dp"或者你想移動的下沉量。

編輯: 也添加android:gravity="left | center"爲了得到正確的文字與圖像。

+7

,但我不知道是什麼填充..不同的屏幕上會有所不同 – yital9 2012-07-06 12:40:34

+0

很好的隊友,這就是隻有這樣做的方法。另外,我認爲在指定xml中的下沉而不是Java代碼時,android尊重這一點,但不是100%確定。 – Carnal 2012-07-06 12:41:46

+0

或者如果你想確定,你可以爲不同的屏幕創建不同的佈局,並將它們放在layout-hdpi,layout-mdpi等等中。 – Carnal 2012-07-06 12:42:16

0

試試這個,你一定會得到的結果:

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

    <Button 
     android:id="@+id/btn" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="hi" 
     android:textSize="24sp" 
     android:background="@drawable/wood"/> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/btn" 
     android:layout_alignBottom="@+id/btn" 
     android:layout_alignParentLeft="true" 
     android:layout_marginLeft="90dp" 
     android:background="@drawable/ic_launcher" 
     android:gravity="center" /> 

</RelativeLayout> 
0

試試這個,

<Button 
    android:background="@null" 
    android:layout_marginLeft="0dp" 
    android:text="HOME" 
    android:layout_width="62dp" 
    android:marqueeRepeatLimit="marquee_forever" 
    android:textColor="#ffffff" 
    android:layout_height="50dp" 
    android:ellipsize="marquee" 
    android:drawableLeft="@drawable/icon_home" 
    android:id="@+id/homebtn" 
    android:singleLine="true" 
    android:textSize="10dp" 
    android:paddingTop="6dp" 
    android:layout_alignParentLeft="true"> 
    </Button>