По моему опыту, большинство смайликов (смайликов) не используют шрифт, а скорее растровую графику (например, смайлики в текстовом редакторе Android по умолчанию). Есть несколько недостатков в использовании шрифта:
- Предположим, вы превратили символы a, b, c, d и т. Д. В смайлики - тогда пользователь не сможет читать / отправлять сообщения с этими символами, если они не превращаются в смайлики.
- Шрифты, как правило, довольно большие, поскольку содержат много информации для отображения текста в разных размерах / стилях
Использование растровой графики позволит вам легко использовать одни и те же смайлики на широком спектре устройств, в то время как при использовании стандартных устройств шрифты текста вокруг смайликов.
Вам нужно будет проанализировать отображаемую строку, найти смайлики и заменить их изображениями.
Например, на Android вы можете выполнить это с помощью:
- Поиск в строке всех смайликов (регулярные выражения могут сделать это достаточно легко)
- Заменить все смайлики строкой
<img src="emoticon.png" />
(althugh change emoticon.png в зависимости от типа смайлика)
- Преобразовать строку в HTML с помощью
String myHtmlString = Html.fromHtml(myEmoticonString, myImageGetter, null);
- Показать строку в TextView
myTextView.setText(myHtmlString)
На шаге 3 myImageGetter
должен быть экземпляр Html.ImageGetter
, который возвращает графику (отрисовку) на основе атрибута src
изображений в строке (т. Е. Преобразует имя файла строки в фактическую графику). )
Действия на других платформах будут другими, но вы сможете использовать тот же базовый метод (анализ строки, замена смайликов изображениями).