2011-11-03 11 views

Odpowiedz

11

Jeśli masz przycisk w swoim main.xml z id = button1 wtedy można go używać w następujący sposób:

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> 

Możesz mieć swój własny plik kształtu. Zamień go w zależności od potrzeb.

1

Zasadniczo trzeba przestrzegać schematu:

1) Get odwołanie do obiektu, który chcesz zmienić

findViewById(R.id.<your_object_id>); 

2) oddanych do typu obiektu

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

3) Użyj setterów na obiekcie "btnYourButton"

4) Przerysuj swój widok (prawdopodobnie dzwoniąc pod nietypowy data());

Zależy od tego, kiedy chcesz, aby zmiana nastąpiła. Zakładam, że do obiektu zostanie dołączony obiekt eventListener , a po wystrzeleniu zdarzenia wykonasz zmianę.

0

Potrzebny jest jakiś typ słuchacza, w którym można wykryć zdarzenie, a kiedy zmienia on kształt/kolor tekstu za pomocą niektórych metod ustawiania.

Spróbuj:

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

Aby dać bardziej zaostrzony zwrotne bym wiedzieć co sygnalizuje chcesz mieć, aby zmienić kolor tekstu i kształt. Czy możesz podać więcej szczegółów na temat tego, co masz na myśli, zmieniając się dynamicznie?

4

można zmienić tekst przycisku Kolor dynamicznie jak

Przycisk btnChangeTextColor = (przycisk) findViewbyId (btnChange); btnChangeTextColor.setTextColor (Color.BLUE);

0

@Override public boolean onTouchEvent (event MotionEvent) {

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; 
} 
Powiązane problemy