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

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

280504 次浏览
?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: back”是要更改的 XML 中的标记。

如果需要动态更新背景值,请参见以下内容:

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

获取所使用的根布局的句柄,然后在其上设置背景颜色。根布局就是所谓的 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));

我喜欢按主题着色

<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>

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

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

你可以用它来调用预定义的机器人颜色:

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

如果您想使用自己的自定义颜色,可以将自定义颜色添加到 strings.xml 中,然后使用下面的命令调用它。

element.setBackgroundColor(R.color.mycolour);

然而,如果您想在 layout.xml 中设置颜色,您可以修改并将下面的内容添加到任何接受它的元素中。

android:background="#FFFFFF"

要获得 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(...);

在你的 onCreate()方法中:

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

还需要在值文件夹中添加一个名为 color.xml的新 XML 文件,并在其中分配一个新的颜色属性:

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(),所以使用 < code > getWindow () . getDecorView () . setBackoundColor (ContextCompat.getColor (MainActivity.this,R.Color.main _ activity _ behind _ color)) ; 取而代之。

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"));
}
});
}

活动

findViewById(android.R.id.content).setBackgroundColor(color)

现在最好的办法当然是

getWindow().getDecorView().setBackgroundColor(ContextCompat.getColor(MainActivity.this, R.color.main_activity_background_color));

但是请注意,如果您在 Designer 中将任何颜色设置为背景色,它将覆盖您试图在代码中设置的 什么都行