2011-06-22 29 views
0

我正在創建一個應用程序,通過活動開始時的代碼創建按鈕(按鈕的數量取決於數組中的值的數量)。每個單獨按鈕的顏色由數組中的對應值定義,按鈕顏色在創建按鈕時設置。按鈕沒有文本,並且由於直接設置背景顏色,不是9個補丁圖像(按鈕的顏色必須儘可能接近給定的值)。Android以編程方式創建按鈕邊框

我的問題是我的佈局背景是黑色的,也有可能有黑色的按鈕。這意味着有時候有些按鈕是不可能看到的,所以我需要添加某種形式的邊框。一些Google搜索表明,即使使用xml佈局,這也不容易。

迄今爲止最好的建議是在每個按鈕周圍畫一個矩形(不理想,但如果它工作...),這個問題是,我可以看到繪製矩形的唯一方法是在視圖中onDraw,我不認爲我可以利用。

任何想法?

+0

爲什麼你認爲你不能使用onDraw? – mibollma

+0

或使用9補丁...特別是如果它只是在黑色背景的情況下...比實際繪製矩形更容易... – Matthieu

回答

4

我可以想到可能會或可能不會工作的破解(我還沒有測試過)。請玩它,也許拿出一個清潔的解決方案 -

button.setBackgroundColor(whatever);  
Drawable backgroundRes = button.getBackground();  
Drawable drawableRes = loadDrawable(R.drawable.white_outline); 
Drawable[] drawableLayers = { backgroundRes, drawableRes }; 
LayerDrawable ld = new LayerDrawable(drawableLayers); 
button.setBackgroundDrawable(ld); 

PS:很抱歉沒能壞的代碼格式,我還沒有完全想通了如何做正確StackOverflow上。

+0

請參閱上面的文本區域,有格式圖標:'{ }'代碼,'雙引號'引用...看他們的工具提示 – ccheneson

+0

@ccheneson - 感謝您指出。 –

+0

謝謝!這工作很好,並解決了我所有的頭痛! – chvck

相關問題