相关疑难解决方法(0)

六角透明的颜色

我正在为我的应用程序小部件实现一个小部件透明度选项,尽管我在修复十六进制颜色值时遇到了一些麻烦.作为十六进制颜色透明度的全新,我搜索了一下,虽然我找不到我的问题的具体答案.

我想用十六进制颜色设置透明度,所以让我说我的十六进制颜色ID"#33b5e5",我希望它是50%透明.然后我会使用"#8033b5e5",因为80%是50%.

我在这里找到了一个有用的图表:http://www.dtp-aus.com/hexadeci.htm.有了这些数据,我设法得到了这个:

0% = #00
10% = #16
20% = #32
30% = #48
40% = #64
50% = #80
60% = #96
70% = #112
80% = #128
90% = #144
Run Code Online (Sandbox Code Playgroud)

现在,当我以十六进制高于100时问题开始出现.十六进制颜色代码只能长8个符号吗?例如#11233b5e5(80%)崩溃.

我能做些什么才能让我使用更高的数字呢?

transparency android hex colors

1219
推荐指数
7
解决办法
93万
查看次数

ContextCompat.getColor() 对于任何定义的颜色返回 -1

我无法从资源中检索正确的颜色值。

从 araks 的这个非常好的答案getResources().getColor()中,我们看到新的 Marshmallow API 已弃用旧方法,因此

我的实现:(尽管非常广泛地寻找原因)

int resColorID;
if (//something here) {
    //some code
    resColorID = R.color.color1;
    //some code
    resColorID = R.color.color2;
    //some code
    resColorID = R.color.color3;
}
int resC = ContextCompat.getColor(context, resColorID);
ColorDrawable cDraw = new ColorDrawable(resC);
Run Code Online (Sandbox Code Playgroud)

resC总是,但总是返回-1。对于我的一生,我找不到任何关于此的东西,

指定的颜色(它们是任意名称)R.color.color1等均在中定义colors.xml

额外信息:

  • 最小构建 SDK = 19
  • 编译+目标sdk = 23

为什么会发生这种情况?

java sdk android

5
推荐指数
0
解决办法
873
查看次数

标签 统计

android ×2

colors ×1

hex ×1

java ×1

sdk ×1

transparency ×1