2012-04-04 6 views
6

Ich habe ein Tutorial folgende gewesen, die erklären, wie man mit verschiedenen Zuständen für einen Buttonhintergrund zu verwenden, aber es scheint nicht zu funktionieren: SGepresste android Schaltflächenzustand-

mein Code hier:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/boutonn" android:state_window_focused="false"/> 
    <item android:drawable="@drawable/boutonnpousse" android:state_pressed="true"/> 
    <item android:drawable="@drawable/boutonnpousse" android:state_focused="true"/> 
    <item android:drawable="@drawable/boutonn" android:state_focused="false" 
    android:state_pressed="false" /> 

</selector> 
Diese

ist eine xML-Code, den ich in meinem ziehbar Ordner abgelegt haben, ist hier ein Teil des xml der Aktivität, die diese Tasten verwendet:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/backgrounddd" 
    android:orientation="vertical" > 

      <Button 
       android:id="@+id/bNoteRemind" 
       android:layout_width="100dp" 
       android:layout_height="100dp" 
       android:layout_gravity="center" 
       android:background="@drawable/imagebutton1" /> 
    ... 

Und hier ist die Java-Klasse:

Die Schaltfläche wird gut angezeigt, aber wenn ich sie drücke, wird das gedrückte Bild nicht angezeigt: s Ich verstehe nicht, was ich falsch mache!

Hat jemand irgendwo einen Fehler ???


Wo sollte ich diese Zeilen setzen? Ich habe sie in meinem Button xml setzen

<Button 
     android:id="@+id/bNoteRemind" 
     android:layout_width="100dp" 
     android:layout_height="100dp" 
     android:layout_gravity="center" 
     android:background="@drawable/imagebutton1" 
     android:focusable="true" 
     android:focusableInTouchMode="true" /> 

Aber jetzt änderte meine Taste Hintergrund der gedrückten Bild ohne mich drücken: p und es ändert sich nicht

+2

Versuch nach, um die Einstellung 'android: fokussierbarem = "true"' und 'android: focusableInTouchMode = true' –

+0

[http://stackoverflow.com/questions/11978880/how-to-change-color-of-the-Toggle-Taste] [1] hierzu entnehmen Sie bitte [1]: http://stackoverflow.com/ Fragen/1 1978880/How-to-Change-Farbe-der-Toggle-Taste – haris

Antwort

18

Ist Button das einzige, was Sie angezeigt haben in Ihrer Activity? Wenn dies der Fall ist, wird es fokussiert (Triggerung des dritten Elements in Ihrem selector), wenn das Fenster geladen wird, und Sie können nicht mehr davon weg navigieren. Wenn Sie nur beim Drücken ändern möchten, löschen Sie diese dritte Zeile. Während Sie gerade dabei sind, löschen Sie die erste Zeile, da die Schaltfläche niemals gedrückt wird, wenn das Fenster nicht fokussiert ist.

In der Tat, ich schlage vor, diesen Code:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/boutonnpousse" android:state_pressed="true"/> 
    <item android:drawable="@drawable/boutonn"/> 
</selector> 
+0

Wie kann ich die Animationsgeschwindigkeit beim Drücken ändern? – wutzebaer

Verwandte Themen