我試圖爲10dp填充和10dp圓角的Java代碼動態創建CustomButton。我寫道:LayerDrawable圖層填充和圓角部分不透明
public class CustomButton extends Button {
private GradientDrawable gd;
private ShapeDrawable sd;
private LayerDrawable ld;
private StateListDrawable sld;
public CustomButton(Context context) {
super(context);
gd = new GradientDrawable(GradientDrawable.Orientation.TL_BR, new int[]{Color.parseColor("#39D100"), Color.parseColor("#369212")});
gd.setCornerRadius(10);
sd = new PaintDrawable();
sd.setPadding(10, 10, 10, 10);
ld = new LayerDrawable(new Drawable[]{sd, gd});
sld = new StateListDrawable();
sld.addState(new int[]{0,1}, ld);
setBackgroundDrawable(sld);
}
}
如果我只添加了GradientDrawable或僅ShapeDrawable到StateListDrawable它工作正常,但如果我把兩到LayerDrawable填充和拐角部分將有一個黑色的背景,而不是透明的預期。
截圖:
感謝清除油漆顏色!這是我的第一個想法,但我不確定是否可以從Java代碼更改漸變。 – Paldom 2012-02-14 14:22:14
當然你可以: –
Drejc
2012-02-14 14:48:29
我的意思是動態的沒有xml。我想用相同的其他參數創建許多不同的彩色漸變按鈕。 – Paldom 2012-02-14 17:09:02