Ich habe eine Form für einen Knopf angewendet wie:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient android:startColor="#DD000000" android:endColor="#DD2d2d2d" android:angle="90"></gradient>
<corners android:radius="15dip"></corners>
</shape>
Jetzt möchte ich einen Selektor verwenden wie:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/active"
android:state_pressed="true" />
<item android:drawable="@drawable/passive"/>
auch für diesen Button. Ist es möglich ...???
09-13 15:25:02.868: ERROR/AndroidRuntime(9129): FATAL EXCEPTION: main android.view.InflateException: Binary XML file line #13: Error inflating class <unknown>.
Ich setze den Selektor alsandroid:background
Attribut einesRoundedImageView
[ github.com/vinc3m1/RoundedImageView#usage] . Hat jemand eine Idee, wie man das macht?Detaillierte Antwort auf den Punkt
Erstellen Sie eine Farbressource in
res / values / colours.xml
Erstellen Sie ein Drawable bei
res / drawable / bg_yellow_round.xml
Erstellen Sie ein weiteres Zeichen, das Sie für den Übergang an derselben Stelle verwenden möchten, und benennen Sie es
res / drawable / bg_yellow_dark_round.xml
Erstellen Sie nun eine Farbstatusliste unter
res / color / btn_selector_yellow.xml
Stellen Sie es nun wie folgt auf Ihre Schaltfläche ein
Nun wird dies Übergang von tun
zu
.
quelle
shape.xml
selector.xml
quelle
Sie können auch eine Form erstellen, die einen Selektor im Inneren verwendet. Wenn Ihre Form nur ihre Farbe in verschiedenen Zuständen ändert, ist dies viel sauberer.
color / color_selector.xml
drawable / shape.xml
quelle
Nun, ich weiß, es ist viel zu spät. Aber hier ist ein gelöstes Beispiel
und mein
header_text_view_selector
Im Grunde genommen erstelle ich einen abgerundeten
textview
Selektor. Hier bin ich nur im Umgangstate_selected
undnot_selected
. Ich hoffe es hilftquelle
Das ist mein Weg und es funktioniert!
quelle
Mein Beispiel ist eine Kreistaste mit state_pressed. Code unten:
quelle
Um wiederverwendbarer zu sein, können Sie Status für einzelne Eigenschaften festlegen. Vermeiden Sie das Duplizieren Ihrer Formen
Ich konnte den Hintergrund programmgesteuert einstellen, nachdem ich ihn mit dieser Methode deaktiviert hatte.
quelle
Verwenden Sie Ihren Formnamen, wenn Sie ein Bild verwenden, und verwenden Sie den Selektor, wenn Sie ein Bild verwenden. Probieren Sie es aus, Sie werden kein Problem haben. Haben Sie das gefragt?
quelle