【问题标题】:set background color: Android设置背景颜色:Android
【发布时间】:2013-08-04 16:33:54
【问题描述】:

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

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

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

【问题讨论】:

  • 为什么会崩溃? logcat 说什么?我相信这是由于其他原因,例如,您是否使用 setContentView 方法为您的 Activity 设置了布局?
  • 你真的使用Color.parseColor("#rrggbb") 吗?你应该在那里使用十六进制

标签: java android colors background


【解决方案1】:

试试这个:

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

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

【讨论】:

  • mainLayout.setBackgroundColor(getResources().getColor(android.R.color.black));
【解决方案2】:
Color.parseColor("#rrggbb")

您应该使用十六进制值 0 到 F 来表示 rr、gg 和 bb,而不是 #rrggbb

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

Source

来自文档:

public static int parseColor(String colorString):

解析颜色字符串,并返回对应的颜色整数。如果 无法解析字符串,抛出 IllegalArgumentException 异常。 支持的格式有:#RRGGBB #AARRGGBB 'red'、'blue'、'green'、 “黑色”、“白色”、“灰色”、“青色”、“洋红色”、“黄色”、“浅灰色”、 “深灰色”、“灰色”、“浅灰色”、“深灰色”、“浅绿色”、“紫红色”、 '石灰','栗色','海军','橄榄','紫色','银色','蓝绿色'

所以我相信,如果您使用 #rrggbb,您的 logcat 中会出现 IllegalArgumentException

Source

替代方案:

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

Source

【讨论】:

    【解决方案3】:

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

    试试这个:

        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)
    

    【讨论】:

      【解决方案4】:

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

      android:background="#fff"
      

      【讨论】:

      • OP 询问如何使用 Java 而非 XML 设置元素的背景颜色。
      【解决方案5】:
              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));
      

      【讨论】:

      • 易于使用以更改完整的背景屏幕。
      • 尽量不要只写代码作为答案,还要至少简要解释一下
      猜你喜欢
      • 2016-09-01
      • 2012-07-31
      • 1970-01-01
      • 2019-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 2010-09-17
      相关资源
      最近更新 更多