如何以编程方式将活动的背景颜色设置为白色?
我怎样才能将一个活动的背景色设置为白色?
获取所使用的根布局的句柄,然后设置背景颜色。 根布局就是你所谓的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")); } }); }