如何以编程方式将活动的背景颜色设置为白色?

我怎样才能将一个活动的背景色设置为白色?

获取所使用的根布局的句柄,然后设置背景颜色。 根布局就是你所谓的setContentView。

setContentView(R.layout.main); // Now get a handle to any View contained // within the main layout you are using View someView = findViewById(R.id.randomViewInMainLayout); // Find the root view View root = someView.getRootView(); // Set the color root.setBackgroundColor(getResources().getColor(android.R.color.red)); 

setContentView()调用之后,在您的活动中添加这一行

 getWindow().getDecorView().setBackgroundColor(Color.WHITE); 

我更喜欢按主题着色

 <style name="CustomTheme" parent="android:Theme.Light"> <item name="android:windowBackground">@color/custom_theme_color</item> <item name="android:colorBackground">@color/custom_theme_color</item> </style> 
 ?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#FFFFFF" android:id="@+id/myScreen" </LinearLayout> 

换句话说,“android:background”是您想要更改的XML中的标签。

如果您需要dynamic更新背景值,请参阅以下内容:

练习:通过SeekBar更改背景颜色

你可以使用它来调用预定义的android颜色:

 element.setBackgroundColor(android.R.color.red); 

如果您想使用自己的自定义颜色之一,则可以将自定义颜色添加到strings.xml,然后使用下面的代码调用它。

 element.setBackgroundColor(R.color.mycolour); 

但是,如果你想在你的layout.xml中设置颜色,你可以修改并添加下面的任何接受它的元素。

 android:background="#FFFFFF" 

在你的onCreate()方法中:

 getWindow().getDecorView().setBackgroundColor(getResources().getColor(R.color.main_activity_background_color)); 

另外,您需要向值文件夹添加一个名为color.xml的新XML文件,并color.xml指定一个新的颜色属性:

color.xml:

 <?xml version="1.0" encoding="utf-8"?> <resources> <color name="main_activity_background_color">#000000</color> </resources> 

请注意,您可以将color.xml命名为您想要的任何名称,但是您可以通过代码将其称为R.color.yourId

编辑

由于getResources().getColor()已被废弃,因此请使用getWindow().getDecorView().setBackgroundColor(ContextCompat.getColor(MainActivity.this, R.color.main_activity_background_color)); 代替。

要获取在xml文件中定义的根视图,没有操作栏,可以使用这个:

 View root = ((ViewGroup) findViewById(android.R.id.content)).getChildAt(0); 

所以,要改变颜色为白色:

 root.setBackgroundResource(Color.WHITE); 
 View randview = new View(getBaseContext()); randview = (View)findViewById(R.id.container); randview.setBackgroundColor(Color.BLUE); 

为我工作。 谢谢。

 final View rootView = findViewById(android.R.id.content); rootView.setBackgroundResource(...); 
 Button btn; View root; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = (Button)findViewById(R.id.button); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { root =findViewById(R.id.activity_main).getRootView(); root.setBackgroundColor(Color.parseColor("#FFFFFF")); } }); }