Respuestas:
Obtenga un identificador para el diseño raíz utilizado, luego configure el color de fondo en eso. El diseño raíz es lo que usted llamó 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));
Agregue esta sola línea en su actividad, después de la setContentView()llamada
getWindow().getDecorView().setBackgroundColor(Color.WHITE);
Prefiero colorear por 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:windowBackgroundse ve primero, por un breve momento, y luego el color de fondo del diseño se hace cargo. Entonces, si usa dos colores diferentes, parpadeará en la pantalla.
windowBackgroundafecta solo al fondo de la ventana, pero también colorBackgroundafecta a todas las vistas. 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>
En otras palabras, "android: background" es la etiqueta en el XML que desea cambiar.
Si necesita actualizar dinámicamente el valor de fondo, consulte lo siguiente:
En su onCreate()método:
getWindow().getDecorView().setBackgroundColor(getResources().getColor(R.color.main_activity_background_color));
También debe agregar a la carpeta de valores un nuevo archivo XML llamado color.xmly Asignar allí una nueva propiedad de color:
color.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="main_activity_background_color">#000000</color>
</resources>
Tenga en cuenta que puede nombrar el color.xmlnombre que desee, pero puede referirse a él por código comoR.color.yourId .
EDITAR
Como getResources().getColor()está en desuso, úselo en su getWindow().getDecorView().setBackgroundColor(ContextCompat.getColor(MainActivity.this, R.color.main_activity_background_color));
lugar.
Puede usar esto para invocar colores predefinidos de Android:
element.setBackgroundColor(android.R.color.red);
Si desea usar uno de sus propios colores personalizados, puede agregar su color personalizado a strings.xml y luego usar el siguiente para llamarlo.
element.setBackgroundColor(R.color.mycolour);
Sin embargo, si desea establecer el color en su layout.xml, puede modificar y agregar lo siguiente a cualquier elemento que lo acepte.
android:background="#FFFFFF"
View randview = new View(getBaseContext());
randview = (View)findViewById(R.id.container);
randview.setBackgroundColor(Color.BLUE);
trabajó para mi. gracias.
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"));
}
});
}