como colorear color cambiar java android android-activity colors

cambiar - colorear un jlabel java



¿Cómo establecer el color de fondo de una actividad en blanco mediante programación? (11)

Agregue esta única línea en su actividad, después de la llamada setContentView()

getWindow().getDecorView().setBackgroundColor(Color.WHITE);

¿Cómo puedo configurar el color de fondo de una actividad en blanco programáticamente?


En su método onCreate() :

getWindow().getDecorView().setBackgroundColor(getResources().getColor(R.color.main_activity_background_color));

También necesita agregar a la carpeta de valores un nuevo archivo XML llamado color.xml y color.xml 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 color.xml nombre que desee a color.xml , pero se lo refiere por código como R.color.yourId .

EDITAR

Como getResources().getColor() está en desuso, use getWindow().getDecorView().setBackgroundColor(ContextCompat.getColor(MainActivity.this, R.color.main_activity_background_color)); en lugar.


Estaba teniendo un problema similar y seguí los pasos mencionados en las respuestas dadas anteriormente. Compartiré lo que funcionó para mí.

Estaba usando un RecyclerView, y había establecido un color de fondo para el artículo. Sin embargo, parecía raro cuando la cantidad de artículos no se ajustaba a la pantalla

Mi diseño inicial

Luego utilicé la función

public void setActivityBackgroundColor(int color) { View view = this.getWindow().getDecorView(); view.setBackgroundColor(color); }

Y llamó a la función setActivityBackgroundColor(R.color.colorAccent); en mi código en otra función. Eso llevó a este diseño . Bastante raro.

Finalmente lo solucioné siguiendo lo que sugirió.

public void setActivityBackgroundColor(int color) { View view = this.getWindow().getDecorView(); view.setBackgroundResource(color); }

Esto finalmente lo solucionó .

EDIT: la solución comenzó a arrojar un error si el RecyclerView no estaba lleno. En ese caso, configuré una bandera para verificar si la vista está vacía o no.

public void setActivityBackgroundColor(int color) { View view = this.getWindow().getDecorView(); if (dataIsNull) { view.setBackgroundColor(color); } else { view.setBackgroundResource(color); } }

Funciona como un encanto ahora.


Obtenga un control del diseño de raíz utilizado, luego establezca el color de fondo en eso. El diseño de raíz es como sea que hayas llamado setContentView with.

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));


Para obtener la vista raíz definida en su archivo xml, sin barra de acciones, puede usar esto:

View root = ((ViewGroup) findViewById(android.R.id.content)).getChildAt(0);

Por lo tanto, para cambiar el color a blanco:

root.setBackgroundResource(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>


Puede usar esto para llamar a colores Android predefinidos:

element.setBackgroundColor(android.R.color.red);

Si desea usar uno de sus 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 el siguiente a cualquier elemento que lo acepte.

android:background="#FFFFFF"


?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:

Ejercicio: cambiar el color de fondo, por SeekBar


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")); } }); }


View randview = new View(getBaseContext()); randview = (View)findViewById(R.id.container); randview.setBackgroundColor(Color.BLUE);

trabajó para mi. gracias.


final View rootView = findViewById(android.R.id.content); rootView.setBackgroundResource(...);