Tasten- und Schriftfarbe der Bildschirmtastatur ändern

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Tasten- und Schriftfarbe der Bildschirmtastatur ändern

    Hallo,
    im Keyboard Layout File kann man die Farbe der Tasten und der Schrift einstellen mit z.B.:

    Quellcode

    1. android:keyTextColor="@color/colorAccent"
    2. android:keyBackground="@color/darkTurquoise"

    ... habe ich gedacht (und viele Tutorials auch). Aber egal, welche Werte ich hier eintrage, mein Keyboard sieht immer exakt gleich aus. Mein Verdacht ist, dass hier irgend ein "Design" sein Bild auf die Tasten pinselt, und dadurch meine Wunschfarben Überschrieben werden ... wie schon gesagt, Verdacht, dann Wissen ist nicht.
    Was kann hier der Grund sein? ...und natürlich: Wie kann man das beheben?

    Beispiel Wunschfarbe:
    Ansicht der Tastatur:

    keyboard_view.xml:

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <com.js.basickeyboard99.MyKeyboardView
    3. xmlns:android="http://schemas.android.com/apk/res/android"
    4. android:id="@+id/keyboard_view"
    5. android:layout_width="match_parent"
    6. android:layout_height="wrap_content"
    7. android:keyPreviewLayout="@layout/key_preview"
    8. android:layout_alignParentBottom="true">
    9. </com.js.basickeyboard99.MyKeyboardView>
    method.xml:

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <input-method
    3. xmlns:android="http://schemas.android.com/apk/res/android"
    4. android:settingsActivity="com.js.basickeyboard99.MainActivity">
    5. <subtype
    6. android:imeSubtypeMode="keyboard"/>
    7. </input-method>
    AndroidManifest.xml:

    XML-Quellcode

    1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    2. android:versionCode="1"
    3. android:versionName="1.02"
    4. package="com.js.basickeyboard99">
    5. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    6. <application
    7. android:allowBackup="true"
    8. android:icon="@mipmap/basic_keyboard"
    9. android:label="@string/app_name"
    10. android:roundIcon="@mipmap/basic_keyboard_round"
    11. android:supportsRtl="true"
    12. android:theme="@style/AppTheme"
    13. >
    14. <activity android:name=".MainActivity">
    15. <intent-filter>
    16. <action android:name="android.intent.action.MAIN" />
    17. <category android:name="android.intent.category.LAUNCHER" />
    18. </intent-filter>
    19. </activity>
    20. <service
    21. android:name=".MyInputMethodService"
    22. android:label="BASIC! Keyboard"
    23. android:permission="android.permission.BIND_INPUT_METHOD">
    24. <intent-filter>
    25. <action android:name="android.view.InputMethod"/>
    26. </intent-filter>
    27. <meta-data
    28. android:name="android.view.im"
    29. android:resource="@xml/method"/>
    30. </service>
    31. </application>
    32. </manifest>
    Alles anzeigen
    Viele Grüße
    Jürgen
  • Neu

    Ich kann das nicht richtig einschätzen: Bin ich mit der Frage bei "Anfängerfragen" falsch?


    Hallo ob du hier falsch bist ich denke nein. Warum hier keiner antwortet weis ich auch nicht.


    Da Ich bis jetzt noch keine Tastatur geschrieben habe kann ich auch nicht allzu viel sagen.

    Ich habe mal ein einfache Tutoriell benutzt. Und deine beiden Zeilen getestet.

    Ging bei mir ohne Problem. über eines bin ich mir bei dir nicht sicher ob du überhaupt die Farbe in colors.xml definiert ist.


    android:keyTextColor="@color/colorAccent"

    android:keyBackground="@color/darkTurquoise"


    darkTurquoise gibt es eigentlich nicht.



    code.tutsplus.com/tutorials/cr…ard-on-android--cms-22615
    Ein Feedback auf Tipps ist auch schön. :P
  • Neu

    Hallo jogimuc,

    vielen Dank, dass du es getestet hast. Schon beim Lesen Deiner Antwort, dachte ich: "Nach dem Tutorial muss ich fragen" - um genau das auch zu testen. Und Du hast gleich den Link dazu geliefert. Sehr aufmerksam!

    Die Farben habe ich in colors.xml definiert mit:

    XML-Quellcode

    1. <color name="colorAccent">#D81B60</color>
    2. <color name="darkTurquoise">#00CED1</color>
    Wenn man auf das Bild "Beispiel Wunschfarbe" im obersten Post klickt, sieht man die Farbvorschau von AS direkt neben der Zeilennummer. Das sollte passen?.

    Ich mache mich demnächst daran, das mit dem von Dir verlinkten Tutorial zu testen und berichte dann das Ergebnis.

    Viele Grüße
    Jürgen
  • Neu

    hallo eine Frage noch zu den Farben.
    Habe mir nochmal dein Bild angesehen. Was willst du eigendlich erreichen?
    Ich hoffe nicht das du die Buchstaben und Ziffern in einer anderen Farbe darstellen willst.
    Mit den zwei Zeilen änderst du alle tasten Hintergrund und Text.
    Nicht jede taste einzeln. Hoffe das dies nicht dein Ziel war.

    Wenn ja wirst du das so bestimmt nicht erreichen.

    Wie das jetzt geht wüsste ich jetzt nicht gleich aus dem stehgreif.
    Ein Feedback auf Tipps ist auch schön. :P
  • Neu

    Hallo jogimuc,

    doch, genau das war Plan A; Gut erkannt! Und wenn das nicht gehen sollte, war Plan B: Das Umranden der Tasten, wie im Bild und wenigstens alle Tasten gemeinsam individuell einstellbar machen.

    Ich habe inzwischen Dein vorgeschlagenes Tutorial getestet, leider ohne Erfolg. Die Farben lassen sich nicht ändern:

    Hast Du Eclipse oder AS verwendet? ...Und ich habe mich nicht ganz an die Vorgaben gehalten: Das Tutorial wünscht min SDK von 2.2, ich habe 4.0 eingestellt (2.2 will ich mir echt nicht mehr herunderladen). Aber kann das ein Problem bei den Farben sein?

    Ich habe da eher andere Sorgen:
    Google steicht die Klassen Keyboard und KeyboardView ersatzlos (Doku auf developer.android.com/reference...):

    Google schrieb:


    This class was deprecated
    in API level 29.
    This class is deprecated because this is just a convenient UI widget class that
    application developers can re-implement on top of existing public APIs. If you have
    already depended on this class, consider copying the implementation from AOSP into
    your project or re-implementing a similar widget by yourselves
    Muss ich jetzt die Klassen selbst schreiben? - Dann habe ich natürlich auch Freie Hand, was Farben angeht - Aber eigentlich wollte ich mir nicht so viel Arbeit machen und selbst ein Keyboard und KeyboradView schreiben :-(.

    Viele Grüße
    Jürgen
  • Neu

    Xeno schrieb:

    Selber schreiben oder die vorhandene Datei anpassen
    Hallo Xeno,

    also wie ich befürchtet habe - Die Klassen habe ich mir schon heruntergeladen. Es wird wohl auf sowas wie "anpassen" hinauslaufen. Selber schreiben kann ich noch nicht, würde mich deshalb sowieso an den Orginalklassen "entlang hangeln". Ich muss mir erst den Durchblick verschaffen; Die Stelle, an der ein Key gezeichnet wird, habe ich noch nicht erkannt. Aber über ein invalidate(rect dirty) bin ich gestolpert, das die Klassen aufrufen und von Google ab API level 28 ebenfalls "gestrichen" wurde. So ein Mist!

    @Google: Wenn man aus einem SDK alles herausstreicht, was für Programmierer hilfreich ist, was bleibt dann übrig? :thumbdown: ...ist vermutlich nur der Ärger über meine eigene Unfähigkeit als Anfänger und Hobbyprogrammierer - muss aber irgendwo raus B-)

    Viele Grüße
    Jürgen