Należy użyć selector
następująco:
Przygotować 2 obrazy dla stanów przycisku, i umieścić go w res/drawable
folderu.
button_normal_green.png - Domyślny przycisk obrazu.
button_pressed_yellow.png - Wyświetlanie po naciśnięciu przycisku.
Teraz utwórz nowy plik XML w folderze "res/drawable /", w dowolnie wybranej nazwie, w tym przypadku po prostu nadajemy nazwę jako "new_button.xml". Ten plik określił, który stan przycisku należy do którego obrazu.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_pressed_yellow" android:state_pressed="true" />
<item android:drawable="@drawable/button_normal_green" />
</selector>
3.Ustaw tło przycisku
<ImageButton
android:id="@+id/imageButtonSelector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/new_button" />
mieć przyjrzeć Complete Example
to zbyt wiele kwestii, aby dać jedną odpowiedź. Przyciski na wierzchu są dość łatwo ustawione 'ImageButton's. Tricky to koło w środku. Możesz utworzyć "ImageButton" dla każdej części i rozmieścić je programowo wokół koła, ale klikalne obszary będą się nakładać. Myślę więc, że najlepiej jest zrobić cały krąg z wszystkimi klikalnymi przyciskami i mieć słuchacza dotykowego, który wykrywa, że faktycznie kliknięto część koła. Może uprościsz i skoncentrujesz swoje pytanie wokół tej części. BTW: Ładny design! – jboi
@jboi masz 100%. Czy będę beli, aby wyświetlać oba stany każdego przycisku za pomocą metody listy dotykowej? Jakieś eaxample? – dmSherazi
Dla różnych stanów rysunków można użyć 'selector' lub' LevelListDrawable'. Za ich pomocą definiujesz różne bitmapy dla stanu dotkniętego i nietkniętego na różnych poziomach. Za pomocą 'ImageView.setLevel (...)' ustawiasz poziom w środowisku wykonawczym. – jboi