2011-05-03 155 views
1

在我的應用程序中,我有幾個帶有小圖片的按鈕。我已經將它們添加到該按鈕與帶圖像和文字的按鈕,放置圖像的方式

android:drawableLeft="picture" 

現在,如果我的按鈕是fill_parent,畫面如左圖所示,當然,我的文字居中。現在我的問題是,有什麼方法可以將這些圖像居中或將它們放在文本旁邊嗎?

回答

0

也許這不是解決問題的最佳方法,但是您是否嘗試使用佈局而不是按鈕。例如,一個LinearLayout包含你想要的所有東西,然後只需添加一個點擊監聽器,使它像按鈕一樣工作。希望這可以幫助。

+0

我認爲這是一種很難做到這一點,因爲我希望用戶儘可能立即看到按鈕。 – Hannelore 2011-05-03 11:36:58

+0

立即是什麼意思?在這裏使用佈局與使用按鈕完全相同,所以不要擔心生產力或其他問題。 – Egor 2011-05-04 06:13:48

+0

如果我很好地理解你,你會在LinearLayout上放置一個onClickListener,這會起作用嗎?但是佈局的外觀呢? – Hannelore 2011-05-04 07:19:42

1

你可以用這個,因爲它幫助我

@Override 
public void onWindowFocusChanged(boolean hasFocus) { 
    super.onWindowFocusChanged(hasFocus); 
    // Call here getWidth() and getHeight() 
    applyTextOffset(yourButton, yourButton.getWidth(),R.drawable.recents); // where R.drawable.recents is your image which you want to set as background 

} 

這種方法時,你可以設置你的形象靠近你的文字

public void applyTextOffset(Button button, int buttonWidth, int image) { 
    int textWidth = (int) button.getPaint().measureText(
      button.getText().toString()); 
    int padding = (buttonWidth/2) 
      - ((textWidth/2) 
        + ((BitmapDrawable) this.getResources().getDrawable(image)).getBitmap().getWidth()); 
    button.setPadding(padding, 0, 0, 0); 
    button.setCompoundDrawablePadding(-padding); 
}