10

Ich baue eine benutzerdefinierte Soft-Tastatur für Android und möchte ein Layout hinzufügen, um die Emoji-Tasten ähnlich wie die Standard-Android-Tastatur (AOSP) zu tun. Ich habe gesucht, aber es scheint, dass die meisten Leute versuchen, benutzerdefinierte Emoji aus Bildern anzuzeigen. Ich suche die integrierten Icons zu zeigen, dass mit Android kommt (siehe unten):Anzeige integrierte Emoji-Tasten für Eingabemethode

Android built-in emoji

Es scheint, dass ich in die Lage sollte die Unicode-Zeichen zu verwenden, um Bilder von der Tastatur zu senden, aber Mein erster Versuch scheint nur die älteren Versionen der Emojis zu generieren. Wie unterstütze ich die neuesten Emojis, mit denen das Telefon umgehen kann? Wie kann ich die Emojis auf meiner Tastatur wie im Bild oben anzeigen?

+0

Wer irgendwelche Ideen hat? – user1715925

Antwort

3

Danke für alle Vorschläge. Was habe ich für die Ansicht ein Emoji-Layout in meiner benutzerdefinierten Tastatur zu arbeiten, war die folgende:

  1. In der XML-Layout-Datei für jedes Emoji Sie hinzufügen möchten, erstellen Sie eine Zeile wie folgt aus: <Key android:codes="0x1F602" android:keyLabel="\ud83d\ude02"/>

  2. Wenn Sie den Schlüssel, den Einsatz zu begehen: getCurrentInputConnection().commitText(String.valueOf(Character.toChars(primaryCode)), 1);

4

Gehen Sie zu https://en.m.wikipedia.org/wiki/Emoji, um zu sehen, welche Emojis Ihr Gerät mit Unicode unterstützt.

Da Sie wissen, welches Emoji angezeigt wird, hängt von der verwendeten Schriftart ab. Um die neuesten Emojis zu erhalten, verwenden Sie NotoColorEmoji.ttf als Schriftart für Ihre App.

+0

Danke. Mein Telefon unterstützt jedoch die gleichen Symbole wie im Screenshot oben gezeigt.Ich weiß nicht, warum es ältere Icons angezeigt hat, als ich die entsprechende Unicode-Sequenz gesendet habe. Wie kann ich meine benutzerdefinierte Tastatur sehen, die diese Emoticons wie im obigen Screenshot zeigt? – user1715925

+0

vorausgesetzt, Sie verwenden Textansichten in der Tastatur: [stackoverflow - set-font-at-runtime-textview] (http://stackoverflow.com/questions/3483110/set-font-at-runtime-textview) – leoderprofi

6

Emoticons-Keyboard

1) statt emitos, ersetzt Iam die Image einen Vermögenswert mit einem Textview enthält eine Unicode-Sequenz enthält.

Nach Querverweisen Unicode-Sequenzen unterstützt sowie die Visual Unicode-Datenbank wurde mir klar, dass ** ** u1F601 war eine Bit-Unicode-Darstellung und die 16bit Darstellung kann wie eingestellt wird:

EditText messageInput = (EditText) findViewById(R.id.message_input); 
messageInput.getText().append("\ud83d\ude01"); 

2) http://android.appstorm.net/how-to/customization/how-to-use-emojis-on-your-android-device/

2

Emoticon-Unterstützung funktioniert nicht wie Sie denken, dass es tut. Es gibt keinen universellen Satz von Emojis, die von allen Android-Geräten unterstützt werden, und die Emojis, die Ihr Gerät unterstützt, werden möglicherweise auf verschiedenen Geräten unterschiedlich angezeigt. Emojis sind in 1 von 2 Möglichkeiten auf Android gemacht.

1) Unicode. Welche Emojis das Gerät unterstützt, hängt von der Schriftart ab, die die App verwendet. Sie senden den Unicode einfach wie normalen Text und Sie würden ihn auf Ihrer Tastatur anzeigen, indem Sie diesen Charakter anzeigen. Bei dieser Methode raten Sie, welche das Telefon unterstützt. Und es ist ein Gesamtwert, weil es davon abhängt, welche Schriftart die App verwendet.

2) Bild umfasst. Sie binden ein ImageSpannable in den Text ein, den Sie über commitText senden. Der Vorteil ist, dass Sie sicher sind, dass Sie ein Bild haben (Sie müssen die Bilder in Ihre App einbinden). Der Nachteil ist, dass es nicht an ein anderes Gerät gesendet werden kann, gespeichert wird und möglicherweise nicht in allen Apps funktioniert (möglicherweise zeigen sie keine durchsuchbaren Objekte an).

Verwandte Themen