जवाबों:
उपयोग किए गए रूट लेआउट के लिए एक हैंडल प्राप्त करें, फिर उस पर पृष्ठभूमि का रंग सेट करें। रूट लेआउट वह है जिसे आपने 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));
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>
android:windowBackground
सबसे पहले, एक संक्षिप्त क्षण के लिए दिखाई देता है, और फिर लेआउट पृष्ठभूमि का रंग खत्म हो जाता है। इसलिए यदि आप दो अलग-अलग रंगों का उपयोग करते हैं, तो यह स्क्रीन पर झिलमिलाहट करेगा।
windowBackground
केवल खिड़की की पृष्ठभूमि को colorBackground
प्रभावित करता है , लेकिन सभी विचारों को भी प्रभावित करता है। 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>
दूसरे शब्दों में, "एंड्रॉइड: बैकग्राउंड" XML में टैग है जिसे आप बदलना चाहते हैं।
यदि आपको पृष्ठभूमि मान को गतिशील रूप से अपडेट करने की आवश्यकता है, तो निम्न देखें:
आपकी onCreate()
विधि में:
getWindow().getDecorView().setBackgroundColor(getResources().getColor(R.color.main_activity_background_color));
इसके अलावा, आपको एक नई 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));
इसके बजाय उपयोग करें ।
आप इसका उपयोग पूर्वनिर्धारित Android रंगों को कॉल करने के लिए कर सकते हैं:
element.setBackgroundColor(android.R.color.red);
यदि आप अपने स्वयं के कस्टम रंगों में से किसी एक का उपयोग करना चाहते हैं, तो आप अपने कस्टम रंग को स्ट्रिंग्स.xml में जोड़ सकते हैं और फिर कॉल करने के लिए नीचे का उपयोग कर सकते हैं।
element.setBackgroundColor(R.color.mycolour);
हालाँकि यदि आप अपने लेआउट में रंग सेट करना चाहते हैं। तो आप इसे स्वीकार करने वाले किसी भी तत्व में नीचे संशोधित और जोड़ सकते हैं।
android:background="#FFFFFF"
View randview = new View(getBaseContext());
randview = (View)findViewById(R.id.container);
randview.setBackgroundColor(Color.BLUE);
मेरे लिए काम किया। धन्यवाद।
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"));
}
});
}