41

如何设置我的 android 应用程序的背景颜色。当我尝试:

LinearLayout li=(LinearLayout)findViewById(R.id.myLayout);
li.setBackgroundColor(Color.parseColor("#rrggbb"));

我的应用程序总是崩溃。有人可以帮帮我。谢谢

4

5 回答 5

72
Color.parseColor("#rrggbb")

而不是#rrggbb你应该为 rr、gg 和 bb 使用 0 到 F 的十六进制值:

例如Color.parseColor("#000000")Color.parseColor("#FFFFFF")

资源

从文档:

公共静态 int parseColor(字符串颜色字符串):

解析颜色字符串,并返回对应的颜色整数。如果无法解析字符串,则抛出 IllegalArgumentException 异常。支持的格式有:#RRGGBB #AARRGGBB 'red'、'blue'、'green'、'black'、'white'、'gray'、'cyan'、'magenta'、'yellow'、'lightgray'、'darkgray ','灰色','lightgrey','darkgrey','aqua','fuschia','lime','maroon','navy','olive','purple','silver','teal'

所以我相信,如果你正在使用#rrggbb你的 logcat 中的IllegalArgumentException

资源

选择:

Color mColor = new Color();
mColor.red(redvalue);
mColor.green(greenvalue);
mColor.blue(bluevalue);
li.setBackgroundColor(mColor);

资源

于 2013-08-03T13:21:51.920 回答
27

这个问题是一个老问题,但它也可以对其他人有所帮助。

尝试这个 :

    li.setBackgroundColor(getResources().getColor(R.color.blue));

    or

    li.setBackgroundColor(getResources().getColor(android.R.color.red));

    or

    li.setBackgroundColor(Color.rgb(226, 11, 11));


    or
    li.setBackgroundColor(Color.RED)
于 2014-06-11T09:59:51.267 回答
8

尝试这个:

li.setBackgroundColor(android.R.color.red); //or which ever color do you want

编辑:发布 logcat 文件也会有所帮助。

于 2013-08-03T13:19:19.983 回答
1

顺便说一句,在较新版本的 AS 上快速选择颜色的一个好技巧是简单地键入 #fff,然后使用代码一侧的颜色选择器选择您想要的颜色。比记住所有颜色十六进制更快更容易。例如:

android:background="#fff"
于 2016-03-23T12:54:11.327 回答
0
        int R = 111;    //My be assigned dynamic value
        int G = 111;    //My be assigned dynamic value
        int B = 111;    //My be assigned dynamic value
        
        getWindow().getDecorView().setBackgroundColor(Color.rgb(R, G, B));
于 2021-12-19T10:42:53.747 回答