android开发分享创build一个新的颜色drawable

我试图将一个hex值转换为一个int,所以我可以创build一个新的颜色绘制。 我不确定这是否可能,但根据文件,它应该。 它明白地要求

public ColorDrawable(int color)

在API级别1中添加使用指定的颜色创build一个新的ColorDrawable。

参数 color要绘制的颜色。

所以,我的代码不工作,因为我得到一个无效的int:“FF6666”错误。 有任何想法吗?

int decode = Integer.decode("FF6666"); ColorDrawable colorDrawable = new ColorDrawable(decode); 

    既然你在谈论hex,你必须以0x ,不要忘记不透明。

    所以基本上是: 0xFFFF6666

     ColorDrawable cd = new ColorDrawable(0xFFFF6666); 

    你也可以在/ res中创build一个新的colors.xml文件,并定义颜色:

     <?xml version="1.0" encoding="utf-8"?> <resources> <color name="mycolor">#FF6666</color> </resources> 

    只需获取在R.color.mycolor中定义的颜色

     getResources().getColor(R.color.mycolor) 

    应该是这样的…

     ColorDrawable cd = new ColorDrawable(0xffff6666); 

    注意我使用了8位hex数字,而不是6位数字。 这增加了透明度

    为了使用ContextCompat并重新调整颜色,你可以这样做:

     ColorDrawable colorDrawable = new ColorDrawable(ContextCompat.getColor(this, R.color.white)); 

    我认为你必须使用:

    public static int parseColor(String colorString)

    在API级别1中添加parsing颜色string,并返回相应的color-int。 如果string不能被parsing,则抛出一个IllegalArgumentExceptionexception。 支持的格式有:#RRGGBB #AARRGGBB红,蓝,绿,黑,白,灰,青,品红,黄,银,蓝绿色

    以上就是android开发分享创build一个新的颜色drawable相关内容,想了解更多android开发(异常处理)及android游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/addevelopment/514188.html

      (0)
      上一篇 2020年11月29日
      下一篇 2020年11月29日

      精彩推荐