Android: Cambiar color TextView XML y Java (ejemplo button)

Blog >Lista Soluciones > Cambiar color TextView

Hola develpers, continuamos el blog con una nueva entrada que en principio para algunos puede resultar muy básica, pero es un gran recurso que se necesita saber.

Cambiar color texto en TextView

A continuación vamos a aprender a dar a un TextView un determinado color pulsando previamente en un botón al que ya se le ha asignado un color.

En primer lugar debemos declarar los colores en un archivo xml para poder hacer referencia a los mismos. Mediante código Java crearemos las instancias de los botones, y en ellas, utilizaremos el método onClick() para terminar con el resultado de proporcionar color al TextView.

1 .- Crear un archivo xml en la carpeta res/values/Colores.xml, os facilito un ejemplo del código donde se almacenan los colores:

 <?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="BLANCO">#FFFFFF</color>
    <color name="NARANJA">#F28220</color>
    <color name="MORADO">#C733C9</color>
    <color name="PISTACHO">#C0D787</color>
    <color name="NEGRO">#000000</color>
    <color name="ROJO">#DE0814</color>
    <color name="ROSA">#E13157</color>
    <color name="SALMON">#FA8071</color>
    <color name="VVIVO">#7EF40A</color>
    <color name="AMARILLO">#FCFA36</color>
    <color name="CELESTE">#ADDBD9</color>
    <color name="COBALTO">#0C23B1</color>
</resources>
Una vez tenemos esto, es muy fácil cambiarlo desde la interfad gráfica del XML, a la derecha en el panel.En properties seleccionamos el TexView o editText y seleccionamos la propiedad TextColor, ahi pulsamos CTRL+ALT+3 para que salga @ y el resto es pan comido, ya que te lo indica la misma ayuda de eclipse :

Seleccionamos y listo, así quedaria en el código:

                    android:id="@+id/nummero"
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:textColor="@color/NEGRO"
                    android:text="00"
                    android:textAppearance="?android:attr/textAppearanceLarge"
                    android:textSize="70sp" />


Ahora,si por el contrario queremos hacer un programita en el que 3 textView cambien del mismo color cada vez que se pulse un boton, aplicaremos código Java en lugar del código anterior :


    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_colores); 

        //inicializo textviews

        numero=(TextView)findViewById(R.id.nummero);

        letras=(TextView)findViewById(R.id.letra);

        guion=(TextView)findViewById(R.id.guion);

        letras.setText(String.valueOf(array[i]));



        b1=(Button)findViewById(R.id.i1);

        b1.setOnClickListener(new OnClickListener(){



            @Override

            public void onClick(View arg0) {

                PonerColores(0);
            }  

        });

}





//FUNCION QUE PONE LOS COLORES A LOS TEXTVIEW

    public void PonerColores(int color){



            letras.setTextColor(letras.getContext().getResources().getColor(R.color.MORADO));

            guion.setTextColor(guion.getContext().getResources().getColor(R.color.MORADO));

            numero.setTextColor(numero.getContext().getResources().getColor(R.color.MORADO));

  }
Vualá!! Espero que os haya servido!!

oOo mAkOnE oOo



Podeis descargar el código fuente de thebestandroide con sólo compartir en facebook,twitter,linkedin o suscribirte a nuestro canal RSS más abajo. 



Compartir Compartir Compartir Compartir




9 comentarios: