Afficher l'émoticône personnalisée dans le clavier Android

J'ai essayé pendant les 3 derniers jours de montrer une émoticône graphique personnalisée dans la vue par défaut des messages Android. J'ai réussi à montrer mes émoticônes personnalisées à la place des clés. Maintenant, le problème est que j'essaie de montrer un générateur de chaînes extensible et extensible. Mais le dessinable n'apparaît plus sur le clavier. Voici le code jusqu'à présent:

SpannableString ss = new SpannableString(" "); Drawable d = getResources().getDrawable(R.drawable.a); d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); // ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE); ImageSpan span = new ImageSpan(d); // ss.setSpan(span, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); mComposing.append(":"); mComposing.setSpan(new ImageSpan(d), 0,1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); getCurrentInputConnection().commitText(mComposing, 1); 

J'ai essayé différentes méthodes pour s'adapter de quelque manière que ce soit à l'esprit, mais il ne s'affiche pas sur la vue par défaut du message d'Android. Toute aide serait très appréciée.

  • Conception de matériel pour la sous-classe de EditText
  • Android scrollback alphabétique rapide dans la barre d'outils RecyclerView avec Collapsing
  • WebViewClient.onPageStarted () appelé deux fois lorsque vous spécifiez une URL inexistante via WebView.loadURL ()
  • L'exécution du test semi-parallèle Espresso échoue sur les objets statiques?
  • ADB par radio
  • Obtenir l'emplacement actuel dans onMapReady dans Android en utilisant Google Maps API
  • 3 Solutions collect form web for “Afficher l'émoticône personnalisée dans le clavier Android”

    Peut-être que cela sera utile: Emoticons-Keyboard

    Voir aussi: Implémentations de Emoji (Emoticon) View / Keyboard Layouts

    Peut-être que vous pourriez utiliser:

    String txt = "<img src=\"" + resourceID + "\"/>"; Pour générer une balise HTML et après cela

    Spanned spanned = Html.fromHtml(txt, emojiGetter, null);
    editTextObj = setText(spanned,BufferType.SPANNABLE);

    emojiGetter est

     private ImageGetter emojiGetter = new ImageGetter() { public Drawable getDrawable(String source){ int id = getResources().getIdentifier(source, "drawable", context.getPackageName()); Drawable emoji = getResources().getDrawable(id); int w = (int)emoji.getIntrinsicWidth() ; int h = (int)emoji.getIntrinsicHeight() ; emoji.setBounds(0, 0, w, h); return emoji; } }; 

    Ça fonctionne bien pour moi. J'ai créé un composant CustomEditText pour simplifier cette conversion.

    Je l'ai fait faire comme ça

      ImageGetter imageGetter = new ImageGetter() { public Drawable getDrawable(String source) { Drawable d = getResources().getDrawable(R.drawable.e041); d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); return d; } }; Spanned cs = Html.fromHtml("<img src='" + getResources().getDrawable(R.drawable.e041) + "'/>", imageGetter, null); getCurrentInputConnection().commitText(cs, 1); 

    // mais remplace le dernier texte entré, voir ma question ici

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.