10

Sto costruendo una tastiera virtuale personalizzata per Android e vorrei aggiungere un layout per includere i tasti emoji simili a quello che sta facendo la tastiera Android predefinita (AOSP). Ho cercato in giro ma sembra che la maggior parte delle persone stia cercando di mostrare emoji personalizzati dalle immagini. Sto cercando di mostrare le icone built-in che viene fornito con Android (come illustrato di seguito):visualizza le emoji incorporate per il metodo di input

Android built-in emoji

Sembra che dovrei essere in grado di utilizzare i caratteri Unicode per inviare immagini dalla tastiera, ma il mio primo tentativo sembra generare solo le versioni precedenti degli emoji. Come posso supportare l'ultima emoji che il telefono può gestire? Inoltre, come posso visualizzare gli emoji sulla tastiera come nell'immagine sopra?

+0

qualcuno ha qualche idea? – user1715925

risposta

3

Grazie per tutti i suggerimenti. Quello che ho avuto modo di lavorare per mostrare un layout emoji nella mia tastiera personalizzata è stato il seguente:

  1. Nel file di layout XML, per ogni emoji che si desidera aggiungere, creare una linea come questa: <Key android:codes="0x1F602" android:keyLabel="\ud83d\ude02"/>

  2. Quando commettere la chiave, l'uso: getCurrentInputConnection().commitText(String.valueOf(Character.toChars(primaryCode)), 1);

4

Vai a https://en.m.wikipedia.org/wiki/Emoji per vedere quali emoji il tuo dispositivo supporta con unicode.

Come sapete quale immagine viene mostrata dipende dal tipo di carattere utilizzato, quindi per ottenere gli ultimi emoji utilizzare NotoColorEmoji.ttf come carattere per l'app.

+0

Grazie. Tuttavia, il mio telefono supporta lo stesso set di icone come mostrato nell'immagine sopra.Non so perché ha visualizzato le icone più vecchie quando ho inviato la sequenza Unicode corrispondente. Inoltre, come posso ottenere una vista sulla mia tastiera personalizzata che mostra queste emoticon come nell'immagine sopra? – user1715925

+0

partendo dal presupposto che tu usi le visualizzazioni di testo sulla tastiera: [StackOverflow - set-font-at-runtime-textview] (http://stackoverflow.com/questions/3483110/set-font-at-runtime-textview) – leoderprofi

6

Emoticons-Keyboard

1) invece emitos, Iam sostituendo l'ImageView contenente un bene con un TextView contenente una sequenza Unicode.

Dopo riferimenti incrociati Supportato Unicode sequenze così come l'Unicode database di Visual ho capito che ** ** u1F601 era una rappresentazione Unicode bit, e la rappresentazione 16bit può essere impostato come:

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

Il supporto per le emoticon non funziona come credi. Non esiste un set universale di emoji supportato da tutti i dispositivi Android e le emoji supportate dal dispositivo potrebbero essere visualizzate in modo diverso su dispositivi diversi. Gli emoji sono fatti su Android in 1 o 2 modi.

1) Unicode. Le emoji supportate dal dispositivo dipendono quindi dal tipo di carattere utilizzato dall'app. Devi semplicemente inviare l'unicode come se fosse un normale testo, e lo visualizzeresti sulla tastiera mostrando quel personaggio. Per questo metodo, indovina su quali supporteranno il telefono. Ed è un'ipotesi totale, perché dipende dal tipo di carattere che l'app sta utilizzando.

2) L'immagine si estende. Immetti un oggetto ImageSpannable nel testo che invii tramite commitText. Il vantaggio di questo è che sei sicuro di avere un'immagine (devi includere le immagini con la tua app). Lo svantaggio è che non può essere inviato a un altro dispositivo, salvato, e potrebbe non funzionare in tutte le app (potrebbero non essere visualizzati oggetti utilizzabili).