Yanıtlar:
Kullanılan kök düzenine bir tutamaç alın, ardından bunun üzerine arka plan rengini ayarlayın. Kök düzeni, setContentView adını verdiğiniz şeydir.
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()
Aramadan sonra bu tek hattı aktivitenize ekleyin
getWindow().getDecorView().setBackgroundColor(Color.WHITE);
Temaya göre renklendirmeyi tercih ederim
<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
önce kısa bir süre için görünür ve ardından düzen arka plan renginin devreye girmesidir . Yani iki farklı renk kullanırsanız, ekranda titreyecektir.
windowBackground
yalnızca pencere arka planını colorBackground
etkiler , ancak tüm görünümleri de etkiler. 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>
Başka bir deyişle, "android: background", XML'de değiştirmek istediğiniz etikettir.
Arka plan değerini dinamik olarak güncellemeniz gerekiyorsa aşağıdakilere bakın:
Senin içinde onCreate()
yöntemle:
getWindow().getDecorView().setBackgroundColor(getResources().getColor(R.color.main_activity_background_color));
Ayrıca değerler klasörüne yeni bir XML dosyası eklemeniz color.xml
ve orada yeni bir renk özelliği atamanız gerekir:
color.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="main_activity_background_color">#000000</color>
</resources>
color.xml
İstediğiniz herhangi bir adı adlandırabileceğinizi, ancak kod ile adlandırabileceğinizi unutmayın R.color.yourId
.
DÜZENLE
Çünkü getResources().getColor()
itiraz edildi, kullanmak getWindow().getDecorView().setBackgroundColor(ContextCompat.getColor(MainActivity.this, R.color.main_activity_background_color));
yerine.
Önceden tanımlanmış android renklerini aramak için bunu kullanabilirsiniz:
element.setBackgroundColor(android.R.color.red);
Kendi özel renklerinizden birini kullanmak istiyorsanız, kendi özel renginizi strings.xml dosyasına ekleyebilir ve ardından onu çağırmak için aşağıdakini kullanabilirsiniz.
element.setBackgroundColor(R.color.mycolour);
Bununla birlikte, layout.xml dosyanızdaki rengi ayarlamak istiyorsanız, aşağıdakini değiştirebilir ve onu kabul eden herhangi bir öğeye ekleyebilirsiniz.
android:background="#FFFFFF"
View randview = new View(getBaseContext());
randview = (View)findViewById(R.id.container);
randview.setBackgroundColor(Color.BLUE);
benim için çalıştı. teşekkür ederim.
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"));
}
});
}