Dies ist eine Tastenauswahl, bei der sie normal rot und grau angezeigt wird, wenn sie gedrückt wird.
Ich möchte fragen, wie der Code direkt weiter modifiziert werden kann, sodass sich beim DRÜCKEN auch die Textgröße und -farbe ändern können. Danke vielmals!
<item android:state_pressed="true" >
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="2dp" android:color="@color/black" />
<solid android:color="@color/grey"/>
<padding android:left="5dp" android:top="2dp"
android:right="5dp" android:bottom="2dp" />
<corners android:radius="5dp" />
</shape>
</item>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="2dp" android:color="@color/black" />
<solid android:color="#FF6699"/>
<padding android:left="5dp" android:top="2dp"
android:right="5dp" android:bottom="2dp" />
<corners android:radius="5dp" />
</shape>
</item>
Sie können keine Änderung der Textgröße mit einer zeichnbaren Statusliste erreichen . So ändern Sie die Textfarbe und -größe:
Textfarbe
Um die Textfarbe zu ändern, können Sie erstellen Farbzustand Liste Ressource . Es handelt sich um eine separate Ressource im
res/color/
Verzeichnis. In Layout-XML müssen Sie es als Wert für dasandroid:textColor
Attribut festlegen . Die Farbauswahl enthält dann ungefähr Folgendes:Textgröße
Sie können die Größe des Textes nicht einfach mit Ressourcen ändern. Es gibt keinen "Dimen Selector". Sie müssen es im Code tun. Und es gibt keine einfache Lösung.
Die wahrscheinlich einfachste Lösung besteht darin
View.onTouchListener()
, die Auf- und Ab-Ereignisse entsprechend zu nutzen und zu behandeln. Verwenden Sie so etwas:Eine andere Lösung könnte darin bestehen, die Ansicht zu erweitern und die
setPressed(Boolean)
Methode zu überschreiben . Die Methode wird intern aufgerufen, wenn der geänderte Zustand geändert wird. Ändern Sie dann die Größe des Textes im Methodenaufruf entsprechend (vergessen Sie nicht, den Super aufzurufen).quelle
Erstellen Sie custom_selector.xml in einem Zeichenordner
Erstellen Sie die Form selected.xml in einem zeichnbaren Ordner
Erstellen Sie eine unselected.xml-Form in einem zeichnbaren Ordner
Fügen Sie die folgenden Farben für den ausgewählten / nicht ausgewählten Status in der Datei color.xml des Werteordners hinzu
Sie können komplette Lösung überprüfen von hier
quelle
Der beste Weg, den Selektor zu implementieren, ist die Verwendung der XML-Datei anstelle der programmgesteuerten Methode, da die Implementierung mit XML einfacher ist.
Für weitere Informationen habe ich über diesen Link http://www.blazin.in/2016/03/how-to-use-selectors-for-botton.html implementiert
quelle
In der XML-Datei Layout
btn_selector.xml
quelle
Sie können diesen Code verwenden:
(Auswahldatei) img_sublist_carat_selector.xml:
quelle