首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LayerDrawable层填充和圆角部分不透明

LayerDrawable层填充和圆角部分不透明
EN

Stack Overflow用户
提问于 2012-02-14 19:58:29
回答 2查看 1.4K关注 0票数 2

我正在尝试为java代码动态创建一个10dp填充和10dp圆角的CustomButton。我写了以下内容:

代码语言:javascript
复制
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中,则填充和边角部分将具有黑色背景,并且不会像预期的那样透明。

ScreenShot:

EN

回答 2

Stack Overflow用户

发布于 2012-03-23 03:44:39

要删除黑色背景,请使用清除绘制颜色

代码语言:javascript
复制
sd.getPaint().setColor(0);
票数 1
EN

Stack Overflow用户

发布于 2012-02-14 21:51:21

我认为这可以通过按钮的自定义选择器来实现,而不是编写整个类。看一下这个问题:Standard Android Button with a different color

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9276452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档