2011-11-03 19 views

Respuesta

11

Si usted tiene un botón en su main.xml con id = botón1 continuación, se puede utilizar de la siguiente manera:

setContentView(R.layout.main); 

Button mButton=(Button)findViewById(R.id.button1); 
mButton.setTextColor(Color.parseColor("#FF0000")); // custom color 
//mButton.setTextColor(Color.RED); // use default color 
mButton.setBackgroundResource(R.drawable.button_shape); 

R.drawable.button_shape (button_shape.xml):

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <gradient 
     android:startColor="#70ffffff" 
     android:centerColor="#70ffffff" 
     android:endColor="#70ffffff" 
     android:angle="270" /> 
    <corners 
     android:bottomRightRadius="8dp" 
     android:bottomLeftRadius="8dp" 
     android:topLeftRadius="8dp" 
     android:topRightRadius="8dp"/> 
</shape> 

Puede tener su propio archivo shape.change de acuerdo a su necesidad.

1

Básicamente, usted tiene que seguir el esquema:

1) obtener referencia al objeto que desea cambiar

findViewById(R.id.<your_object_id>); 

2) lo arrojó al tipo de objeto

Button btnYourButton = (Button) findViewById(R.id.<your_object_id>); 

3) Use setters en el objeto "btnYourButton"

4) vuelva a dibujar su vista (posiblemente llamando a invali) fecha());

Depende de cuándo desea que se realice el cambio. Supongo que tendrá un eventListener adjunto a su objeto, y después de que se dispare el evento, realizará su cambio.

0

Necesitará algún tipo de oyente donde escuche que ocurra un evento, y cuando cambie el color de la forma/texto usando algunos métodos establecidos.

Probar:

http://developer.android.com/reference/android/view/View.OnClickListener.html

para dar información más puntiaguda que había necesidad de saber qué señal que desea tener con el fin de cambiar el color y la forma del texto. ¿Puedes dar más detalles sobre lo que quieres decir con un cambio dinámico?

4

Puede cambiar el color del texto del botón dinámicamente como

botón btnChangeTextColor = (Button) findViewById (btnChange); btnChangeTextColor.setTextColor (Color.BLUE);

0

@ Override onTouchEvent public boolean (MotionEvent evento) {

if (event.getAction() == MotionEvent.ACTION_DOWN) { 

     start_x = event.getX(); 
     start_y = event.getY(); 

    } else if (event.getAction() == MotionEvent.ACTION_MOVE) { 

     setTitle(event.getX() + "y pos" + event.getY()); 
     RelativeLayout layout = (RelativeLayout) findViewById(R.id.lay); 

     layout.setBackgroundColor(Color.rgb((int) start_x, (int) start_y, 0)); 
    } else if (event.getAction() == MotionEvent.ACTION_UP) { 



    } 
    return true; 
} 
Cuestiones relacionadas