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:windowBackground
se 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.
windowBackground
afecta solo al fondo de la ventana, pero también colorBackground
afecta 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.xml
y 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.xml
nombre 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"));
}
});
}