2011-05-03 108 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); 
}