Добавление нескольких смайлов в TextView с использованием ImageSpan - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь добавить несколько смайлов в текстовое представление с помощью этого кода.
Это мой TextView.

<TextView
        android:id="@+id/textViewId"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:bufferType="spannable" />

И это функция добавления смайликов.

public void addSmily() {
        int resource  = R.drawable.smily ;

        Spannable spannable = Spannable.Factory.getInstance().newSpannable(" ");

        Drawable d = ContextCompat.getDrawable(this, resource);
        d.setBounds(0, 0, 40, 40);
        ImageSpan smilySpan = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);

        spannable.setSpan(smilySpan, spannable.length()-1, spannable.length(), 0);

        sendText.append(spannable);
}

Улыбкидобавляются идеально, но проблема в том, что когда я добавляю много смайликов, которые не помещаются в одну строку, тогда первая строка смайликов становится невидимой, и они начинаются со 2-й строки.

App Privew Это то, что происходит.Плз, кто-нибудь, помогите мне.

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Решение:

Попробуйте это внутри своей кнопки:

SpannableString ss = new SpannableString("abc");

Drawable d = ContextCompat.getDrawable(your_activity.this, R.drawable.your_smiley_drawable);
d.setBounds(0, 0, 40, 40);
ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);
ss.setSpan(span, 0, 3, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

edittext.append(ss);

Примечание: Кроме того, тип ввода EditText должен быть textMultiline.

Попробуй, работает у меня на коленях, Будем надеяться, это тебе тоже поможет.

0 голосов
/ 28 сентября 2018

Вы также можете установить смайлик по Юникоду в текстовом представлении.

как установить эмодзи в кодировке Юникод в текстовом представлении?

int unicode = 0x1F60A;

Что можно использовать с

public String getEmojiByUnicode(int unicode){
    return new String(Character.toChars(unicode));
}

Так что Textview отображает ? без Drawable

Попробуйте это с http://apps.timwhitlock.info/emoji/tables/unicode

Надеюсь, это поможет вам.

...