texto - cambiar color de fondo activity android
Cómo establecer el color de fondo de una vista (13)
y ¿cuál es la forma correcta de cambiar el color de fondo en cualquier Vista?
En cualquier View
? Lo que tienes es correcto, aunque deberías descartar la llamada invalidate()
.
Sin embargo, algunas Views
ya tienen fondos. Un Button
, por ejemplo, ya tiene un fondo: la cara del botón en sí. Este fondo es un StateListDrawable
, que puede encontrar en android-2.1/data/res/drawable/btn_default.xml
en su instalación de Android SDK. Eso, a su vez, se refiere a un grupo de imágenes de mapa de bits de nueve parches, disponibles en múltiples densidades. Tendría que clonar y modificar todo eso para lograr sus objetivos verdes.
En resumen, será más útil encontrar otro patrón de UI en lugar de intentar cambiar el fondo de un Button
.
Intento establecer el color de fondo de una Vista (en este caso, un Botón).
Yo uso este código:
// set the background to green
v.setBackgroundColor(0x0000FF00 );
v.invalidate();
Hace que el Botón desaparezca de la pantalla. ¿Qué estoy haciendo mal y cuál es la forma correcta de cambiar el color de fondo en cualquier Vista?
Gracias.
Cuando llama a setBackgoundColor sobrescribe / elimina cualquier recurso de fondo existente, incluidos los bordes, esquinas, relleno, etc. Lo que quiere hacer es cambiar el color del recurso de fondo existente ...
View v;
v.getBackground().setColorFilter(Color.parseColor("#00ff00"), PorterDuff.Mode.DARKEN);
Experimenta con PorterDuff.Mode. * Para diferentes efectos.
Esta question refiere a cambiar el color de fondo de una vista. En una de las respuestas, la persona explica cómo cambiar el color de fondo durante el tiempo de ejecución. Obviamente, vas a ver cómo modificar otros objetos en la pantalla, pero esto debería darte un buen comienzo al permitir al menos modificar el color de fondo de la vista al hacer clic en el botón.
Establecer con Android 6 use ContextCompact
view.setBackgroundColor( ContextCompat.getColor(this, R.color.your_color));
Has hecho que tu botón sea transparente. El primer byte es el alfa.
Pruebe v.setBackgroundColor(0xFF00FF00);
Para configurar el primer color que se verá en la pantalla, también puede hacerlo en el layout.xml relevante (mejor diseño) agregando esta propiedad a la Vista relevante:
android:background="#FF00FF00"
Puede establecer el color hexadecimal para cualquier recurso con:
View.setBackgroundColor(Color.parseColor("#e7eecc"));
Puedes usarlo de forma sencilla:
view.setBackgroundColor(Color.parseColor("#FFFFFF"));
Varias opciones para hacer esto ...
Establecer el fondo en verde:
v.setBackgroundColor(0x00FF00);
Establecer el fondo en verde con Alpha :
v.setBackgroundColor(0xFF00FF00);
Establecer el fondo en verde con la constante Color.GREEN:
v.setBackgroundColor(Color.GREEN);
Establecer fondo para definición verde en Colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="myGreen">#00FF00</color>
<color name="myGreenWithAlpha">#FF00FF00</color>
</resources>
y usando:
v.setBackgroundResource(R.color.myGreen);
y:
v.setBackgroundResource(R.color.myGreenWithAlpha);
o el más largo sin aliento:
v.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.myGreen));
y:
v.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.myGreenWithAlpha));
Yo uso en API min 16, objetivo 23
Button WeekDoneButton = (Button) viewWeeklyTimetable.findViewById(R.id.week_done_button);
WeekDoneButton.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.colorAccent));
intenta agregar:
setBackgroundColor(Color.parseColor("#FF0000"));
// set the background to green
v.setBackgroundColor(0x0000FF00 );
v.invalidate();
El código no establece el botón en verde. En cambio, hace que el botón sea totalmente invisible.
Explicación: el valor hexadecimal del color es incorrecto. Con un valor alfa de cero, el color será invisible.
El valor hexadecimal correcto es 0xFF00FF00
para opacidad completa en verde. Cualquier valor alfa entre 00 y FF causaría transparencia.
mButton.setBackgroundColor(getResources().getColor(R.color.myColor));