2010-05-14 29 views
3

我可能只是呆呆的,但我的Google搜索工作不好。Android:縮放帶有背景圖片的按鈕

我有一堆按鈕,我添加的代碼中都有動態文本。我爲每個按鈕設置了背景圖像,因爲默認的灰色按鈕對我的應用程序不起作用。

這可以很好地工作,當文本大小(或內容)發生變化時,按鈕會自動增長以適應擴展文本。不起作用的是,我希望按鈕按比例縮放 - 即如果背景圖像是圓形的,我希望按鈕變大時保持圓形而不是橢圓形。

使用imagebutton,有一個屬性「調整視圖邊界」完成這個,但我不能把文本放在圖像按鈕上。是否有相當於常規按鈕的東西?

還是我在談論這個錯誤?

我也嘗試設置在代碼中按鈕的寬度,但我似乎無法確定新的高度(button.getHeight()返回0)

回答

4

好,我發現做這件事.. 我修改了patch-9,使其可擴展區域在兩個軸上都是最大的。

然後使用這樣的DisplayMetrics:

 DisplayMetrics metrics = new DisplayMetrics(); 
     getWindowManager().getDefaultDisplay().getMetrics(metrics); 
     buttonView.setGravity(Gravity.CENTER); 

     int buttonSize=(int) Math.floor(metrics.density*1.6*fontSize); 
     buttonView.setWidth(buttonSize); 
     buttonView.setHeight(buttonSize); 

其中fontSize的是在DIP我是放置在每個按鈕上的字體的大小。在這種情況下,由於每個按鈕上只有一個字母,因此我不必擔心文本的長度,但顯然也可以調整它來處理這種情況。