Ich habe vorerst eine benutzerdefinierte Ansicht mit einem 9-Patch-Bild als Rahmen.
Diese benutzerdefinierte Ansicht wird dreimal in einem LinearLayout platziert, sodass sie wie folgt aussieht:
%Vor%Ich habe der Ansicht einen Klickereignis-Listener angehängt, sodass er anklickbar ist. Aber dann klicke ich darauf, ich kann nicht sehen, dass ich darauf klicke - es gibt keine Farbänderung.
Also dachte ich, ich würde einen "onPress" Listener anhängen und dann den Hintergrund der Ansicht ändern, aber ich konnte keinen solchen Listener finden.
Die Frage ist also: Wie erstelle ich das Verhalten in der Ansicht, damit ich sehen kann, dass es gedrückt wird? Dies wird normalerweise in Android mit einem grünen Hintergrund gemacht, um anzuzeigen, dass es jetzt gedrückt wird.
Grüße
Sie können den OnClickListener für die Ansicht festlegen. Das wird aufgerufen, wenn auf die Ansicht geklickt wird. Aber für etwas so einfaches wie das Ändern des Hintergrunds, wenn eine Ansicht geklickt wird, sollten Sie ein Stateful Drawable verwenden. Sie arbeiten so, Sie machen 3 9-Patch-Bilder.
Dann erstellen Sie eine neue XML-Datei in Ihrem zeichnenden Ordner. Es sollte so aussehen:
%Vor%
Wenn Sie dann den Hintergrund Ihrer Ansicht festlegen, setzen Sie ihn auf die XML-Datei.
Falls Sie Probleme beim Zugriff auf Farben haben, möchten Sie vielleicht colors.xml zum Werte-Ordner mit einigen Ihrer Lieblingsfarben hinzufügen:
%Vor%
Und dann fügen Sie Ihrem zeichnenden Ordner eine weitere XML-Datei mit dem von Ihnen gewünschten Namen hinzu
Mit Inhalt wie vorherige Antwort aber anstatt @drawable rufen Sie @color
auf %Vor%Jetzt können Sie den Hintergrund Ihrer Ansicht auf Ihren ausdruckbaren Foreller setzen
%Vor%Wenn Sie alle X11 / w3c-Farbcodes verwenden möchten, verwenden Sie diesen Beitrag oder nur Codes, die hier zur Verfügung gestellt werden:
%Vor%Tags und Links android