首页 文章

如何设置视图的背景颜色

提问于
浏览
152

我正在尝试设置视图的背景颜色(在本例中为Button) .

我用这个代码:

// set the background to green
v.setBackgroundColor(0x0000FF00 );
v.invalidate();

它会导致Button从屏幕上消失 . 我做错了什么,以及在任何视图上更改背景颜色的正确方法是什么?

谢谢 .

14 回答

  • 262
    // set the background to green
    v.setBackgroundColor(0x0000FF00 );
    v.invalidate();
    

    代码不会将按钮设置为绿色 . 相反,它使按钮完全不可见 .

    说明:颜色的十六进制值错误 . Alpha值为零时,颜色将不可见 .

    对于完全不透明度绿色,正确的十六进制值为 0xFF00FF00 . 00和FF之间的任何Alpha值都会导致透明度 .

  • 4

    你使你的按钮透明 . 第一个字节是alpha .

    试试 v.setBackgroundColor(0xFF00FF00);

  • 12

    使用Android 6说明使用ContextCompact

    view.setBackgroundColor( ContextCompat.getColor(this, R.color.your_color));
    
  • 33

    我在API min 16,目标23使用

    Button WeekDoneButton = (Button) viewWeeklyTimetable.findViewById(R.id.week_done_button);
    
    WeekDoneButton.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.colorAccent));
    
  • 16

    有几种选择......

    Set background to green:

    v.setBackgroundColor(0x00FF00);
    

    Set background to green with Alpha:

    v.setBackgroundColor(0xFF00FF00);
    

    Set background to green with Color.GREEN constant:

    v.setBackgroundColor(Color.GREEN);
    

    Set background to green defining in Colors.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources>     
        <color name="myGreen">#00FF00</color> 
        <color name="myGreenWithAlpha">#FF00FF00</color> 
    </resources>
    

    和使用:

    v.setBackgroundResource(R.color.myGreen);
    

    和:

    v.setBackgroundResource(R.color.myGreenWithAlpha);
    

    或者更长的啰嗦:

    v.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.myGreen));
    

    和:

    v.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.myGreenWithAlpha));
    
  • 101
    mButton.setBackgroundColor(getResources().getColor(R.color.myColor));
    
  • 134

    以及在任何视图上更改背景颜色的正确方法是什么?

    在任何 View ?你有什么是正确的,虽然你应该放弃 invalidate() 电话 .

    但是,有些 Views 已经有了背景 . 例如, Button 已经具有背景:按钮本身的面部 . 此背景为 StateListDrawable ,您可以在Android SDK安装中的 android-2.1/data/res/drawable/btn_default.xml 中找到该背景 . 反过来,这是指一堆九个补丁位图图像,有多种密度可供选择 . 您需要克隆并修改所有这些以实现您的绿色目标 .

    简而言之,您将更好地找到另一个UI模式,而不是尝试更改 Button 的背景 .

  • 10

    你可以简单地使用:

    view.setBackgroundColor(Color.parseColor("#FFFFFF"));
    
  • 5

    尝试添加:

    setBackgroundColor(Color.parseColor("#FF0000"));
    
  • 4

    要设置要在屏幕上看到的第一种颜色,您还可以通过将此属性添加到相关视图,在相关的layout.xml(更好的设计)中执行此操作:

    android:background="#FF00FF00"
    
  • 6

    这个question谈到了改变视图的背景颜色 . 在其中一个答案中,该人员解释了如何在运行时更改背景颜色 . 显然,您将研究如何修改屏幕上的其他对象,但这应该给您一个良好的开端,至少允许您在按钮单击时修改视图的背景颜色 .

  • 11

    您可以使用以下命令将hex-color设置为任何资源:

    View.setBackgroundColor(Color.parseColor("#e7eecc"));
    
  • 3

    当你调用setBackgoundColor时,它会覆盖/删除任何现有的背景资源,包括任何边框,角落,填充等 . 你要做的是改变现有背景资源的颜色......

    View v;
    v.getBackground().setColorFilter(Color.parseColor("#00ff00"), PorterDuff.Mode.DARKEN);
    

    尝试使用PorterDuff.Mode . *来获得不同的效果 .

  • 2

    你可以简单地使用:

    view.setBackgroundColor(Color.rgb(0, 198, 255));
    

相关问题