Android以编程方式创建按钮边框

时间:2011-06-22 17:44:16

标签: android android-layout

我正在创建一个应用程序,在活动开始时通过代码创建按钮(按钮的数量取决于数组中的值的数量)。每个按钮的颜色由数组中的相应值定义,按钮颜色在创建按钮时设置。按钮没有文字,并且由于直接设置背景颜色,不是9个补丁图像(按钮的颜色必须尽可能接近给定的值)。

我遇到的问题是我的布局背景为黑色,也可能有黑色按钮。这意味着有时候某些按钮是不可能看到的,所以我需要添加某种形式的边框。一些谷歌搜索表明即使使用xml布局也不容易做到这一点。

到目前为止,最好的建议是在每个按钮周围绘制一个矩形(不理想,但如果它有效......),这个问题是我可以看到绘制矩形的唯一方法是在视图上绘制我不认为我可以利用它。

1 个答案:

答案 0 :(得分: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上正确地做到这一点。