如何在动态布局中动态传递颜色?

时间:2014-02-21 03:59:43

标签: android background-color

我正在使用以下代码

创建动态布局
LinearLayout outerLinearLayout = new LinearLayout(activity);
outerLinearLayout.setBackgroundColor(Color.WHITE);

正如您所看到的,我将其背景颜色设置为白色,现在假设我有包含{“#FF2233”,...}等元素的字符串数组,那么如何将此十六进制值传递给{{1}动态的?

我的动机是在运行时传递动态颜色值,而不是传递像setBackgroundColor()这样的修正值。

3 个答案:

答案 0 :(得分:6)

尝试使用Color类,此类有一个方法将十六进制中的颜色解析为Android有效值。

Color.parseColor("#FF2233");

答案 1 :(得分:1)

color的值是整数,因此它可以用作字符串,而不能再次转换为int

int color = Integer.parseInt("bdbdbd", 16)+0xFF000000;

根据您的需要使用此颜色

或直接你可以像Color.parseColor("yours color value");

那样

通过手段

您可以将HEX String值解析为Color并使用

int color = Integer.parseInt(“bdbdbd”,16)+ 0xFF000000; 如

 LinearLayout outerLinearLayout = new LinearLayout(activity); outerLinearLayout.setBackgroundColor(color )

或使用Color.parseColor(“你的颜色值”) 如

 LinearLayout outerLinearLayout = new LinearLayout(activity); outerLinearLayout.setBackgroundColor(Color.parseColor("yours color value"))

答案 2 :(得分:1)

这很简单。您只需将HEX String解析为Color并加载如下:

 LinearLayout outerLinearLayout = new LinearLayout(activity);

 outerLinearLayout.setBackgroundColor(Color.parseColor("#101010"));

Color.parseColor("#"+your color value)已通过