view on onpress drücken: Hintergrundfarbe beim Drücken ändern? Wie zeige ich, dass die Ansicht gedrückt wird?

8

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

    
Ted 05.01.2010, 22:10
quelle

2 Antworten

20

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.

  1. ist der normale Hintergrund wie das, was Sie jetzt haben.
  2. ist, wie der Hintergrund aussehen sollte, wenn der Benutzer die Ansicht mit dem Trackball / D-Pad
  3. auswählt
  4. ist, wie die Ansicht aussehen sollte, wenn der Benutzer darauf klickt

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.

    
CaseyB 05.01.2010, 22:38
quelle
3

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%     
Eftekhari 21.07.2015 14:46
quelle

Tags und Links