Jawaban:
Dapatkan pegangan untuk tata letak root yang digunakan, lalu atur warna latar belakangnya. Layout root adalah apa pun yang Anda sebut 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));
root.setBackgroundColor(getResources().getColor(android.R.color.red));
Tambahkan baris ini di aktivitas Anda, setelah setContentView()
panggilan
getWindow().getDecorView().setBackgroundColor(Color.WHITE);
Saya lebih suka mewarnai berdasarkan tema
<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>
android:windowBackground
terlihat pertama, untuk sesaat, dan kemudian warna latar tata letak mengambil alih. Jadi jika Anda menggunakan dua warna berbeda, itu akan berkedip di layar.
windowBackground
hanya memengaruhi latar belakang jendela, tetapi juga colorBackground
memengaruhi semua tampilan. stackoverflow.com/questions/26266221/…
?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>
Dengan kata lain, "android: background" adalah tag di XML yang ingin Anda ubah.
Jika Anda perlu memperbarui nilai latar belakang secara dinamis, lihat yang berikut:
Dalam onCreate()
metode Anda :
getWindow().getDecorView().setBackgroundColor(getResources().getColor(R.color.main_activity_background_color));
Anda juga perlu menambahkan ke folder nilai file XML baru yang disebut color.xml
dan Tetapkan di sana properti warna baru:
color.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="main_activity_background_color">#000000</color>
</resources>
Perhatikan bahwa Anda dapat memberi nama color.xml
nama yang Anda inginkan tetapi Anda menyebutnya dengan kode sebagai R.color.yourId
.
EDIT
Karena getResources().getColor()
sudah usang, gunakan getWindow().getDecorView().setBackgroundColor(ContextCompat.getColor(MainActivity.this, R.color.main_activity_background_color));
saja.
Anda dapat menggunakan ini untuk memanggil warna android yang telah ditentukan:
element.setBackgroundColor(android.R.color.red);
Jika Anda ingin menggunakan salah satu warna kustom Anda sendiri, Anda dapat menambahkan warna kustom Anda ke strings.xml dan kemudian gunakan di bawah ini untuk menyebutnya.
element.setBackgroundColor(R.color.mycolour);
Namun jika Anda ingin mengatur warna di layout.xml Anda dapat memodifikasi dan menambahkan di bawah ini ke elemen apa pun yang menerimanya.
android:background="#FFFFFF"
View randview = new View(getBaseContext());
randview = (View)findViewById(R.id.container);
randview.setBackgroundColor(Color.BLUE);
bekerja untukku. Terima kasih.
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"));
}
});
}