2011-05-19 40 views
5

我已將我的按鈕寬度設置爲fill_parent如何在按鈕的中心設置圖片和文字

so是否可以設置按鈕中心的圖像和文本。

存在對drawable_Left選項,但按鈕的左邊對齊圖像...

我想是這樣的。


.... [image] [text] .... |


感謝:使用android:drawableTop=""的按鈕,然後設置圖像先設置背景,然後通過android:text=""

+0

使用drawable_Left後,您可以設置填充 – Lavanya 2011-05-19 09:30:35

回答

0

使用android:gravity="center_vertical"

2

試試這個gravitycenter然後使用drawable_Left

0

先給設置文本:在你的佈局

0

你,你應該使用吹代碼讓你的問題的解決相對佈局把它放在你的XML文件

android:layout_centerHorizontal ="true" 
0
<Button android:text="Button" android:id="@+id/button1" 
    android:layout_height="wrap_content" android:background="@drawable/icon" 
    android:layout_width="200dp" android:gravity="center"></Button> 

希望它能幫助;

0

下面是一個效用函數中心內部左側圖像和文本Button

public static void centerImageAndTextInButton(Button button) { 
    Rect textBounds = new Rect(); 
    //Get text bounds 
    CharSequence text = button.getText(); 
    if (text != null && text.length() > 0) { 
     TextPaint textPaint = button.getPaint(); 
     textPaint.getTextBounds(text.toString(), 0, text.length(), textBounds); 
    } 
    //Set left drawable bounds 
    Drawable leftDrawable = button.getCompoundDrawables()[0]; 
    if (leftDrawable != null) { 
     Rect leftBounds = leftDrawable.copyBounds(); 
     int width = button.getWidth() - (button.getPaddingLeft() + button.getPaddingRight()); 
     int leftOffset = (width - (textBounds.width() + leftBounds.width()) - button.getCompoundDrawablePadding())/2 - button.getCompoundDrawablePadding(); 
     leftBounds.offset(leftOffset, 0); 
     leftDrawable.setBounds(leftBounds); 
    } 
} 

它使用Button的寬度進行計算,所以你必須與要調用此檢查在正確的地方。也就是說,寬度應該不是零。例如,如果您想在onCreate中使用它,請使用button.getViewTreeObserver().addOnGlobalLayoutListener(...call it onGlobalLayout...)

相關問題