Ich habe ein Problem und konnte bis jetzt keine Lösung finden! Ich habe eine benutzerdefinierte Tastatur mit mehreren Tasten implementiert. Jeder Schlüssel hat ein Hintergrundbild. Ich möchte die Hintergrundfarbe der gedrückten Taste selbst wie in der ursprünglichen Tastatur unten ändern:Android Custom Keyboard Ändern Hintergrundfarbe Taste gedrückt
Ich möchte eine Vorschau nicht haben, ich möchte die Hintergrundfarbe des Schlüssels selbst ändern , wenn die Taste gedrückt wird. Hier sind meine Dateien:
keyboard.xml
<?xml version="1.0" encoding="UTF-8"?>
<android.inputmethodservice.KeyboardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/keyboard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:keyPreviewOffset="10dp"
android:keyPreviewLayout ="@layout/preview"
android:keyTextColor="@color/colorAccent"
android:keyBackground="@drawable/keybackground"
android:background="#881f2023"
/>
keybackground.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/cleanbuttonnormal" />
<item
android:state_pressed="true"
android:drawable="@drawable/cleandeactivate" />
<item
android:state_checkable="true"
android:drawable="@drawable/cleanbuttonnormal" />
<item
android:state_checkable="true"
android:state_pressed="true"
android:drawable="@drawable/cleandeactivate" />
<item
android:state_checkable="true"
android:state_checked="true"
android:drawable="@drawable/cleanbuttonnormal" />
<item
android:state_checkable="true"
android:state_checked="true"
android:state_pressed="true"
android:drawable="@drawable/keybackground" />
</selector>
Die Hintergrundfarbe wird auf meine ziehbar geändert werden, aber wenn ich die Taste drücken, wird es nicht geändert in den gedrückten Zustand. Der Hintergrund bleibt gleich. Kannst du mir bitte Helfen?
Hier meine benutzerdefinierte Tastaturlayout, mit Vorschau aktiviert zu zeigen, dass der Button getroffen wurde.
Die schwarze Taste mit dem 8 sollte gelb. Die Vorschau dient zum Debuggen.
Danke Alexander für Ihre Antwort! Ich verstehe das Problem, aber wo ändere ich das? Welche Dateien werden zuerst überprüft? Wie kann ich meine spezifische background.xml-Datei als ersten Hintergrund festlegen? Ich bemerkte, dass ich einen Tippfehler machte. Ich habe das einmal korrigiert. Ich habe die keybackground.xml von cleanbuttonnormal verwendet. Jetzt sieht es wie mein Code aus. – user3325230
Probieren Sie die umgekehrte Reihenfolge! –
Gut danke! Habe diese Tatsache nicht erkannt. Du hast recht, hab nur den Status oben überprüft und alles funktioniert! Vielen Dank! – user3325230