Jak dynamicznie/programowo zmieniać kolor tekstu przycisku i kształt przycisku (prostokąta)?Jak dynamicznie zmieniać kolor przycisków i tekstu na Androidzie
Odpowiedz
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.
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ę.
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?
można zmienić tekst przycisku Kolor dynamicznie jak
Przycisk btnChangeTextColor = (przycisk) findViewbyId (btnChange); btnChangeTextColor.setTextColor (Color.BLUE);
@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;
}
saerch więc na takie pytania http://stackoverflow.com/questions/4755871/how-to-set-image-button-backgroundimage- dla różnych stanów/4755934 # 4755934 – ingsaurabh