使用canvas.drawText()时如何使用ios表情符号替换Android表情符号
How to use ios emoji repalce Android emoji when using canvas.drawText()
android 设备无法显示新的 ios9 表情符号。所以,我想用ios表情替换androidemoji.usingemojicon可以支持TextView和EditText。
但是,我有一个自定义视图使用 canvas.drawText() 绘制 text.This 将显示 android 表情符号。
如何解决这个问题?非常感谢。
Paint p = new Paint();
p.setAntiAlias(true);
p.setStrokeWidth(r);
p.setColor(outerCircleColor);
canvas.drawCircle(centerX, centerY, outerR, p);
p.setColor(centerColor);
canvas.drawCircle(centerX, centerY, r, p);
p.setStrokeWidth(lineWidth);
p.setColor(lineColor);
canvas.drawLine(centerX, centerY, pointLine1Corner.x, pointLine1Corner.y, p);
canvas.drawLine(pointLine1Corner.x, pointLine1Corner.y, pointLine1End.x, pointLine1End.y, p);
p.setColor(textColor);
p.setTextSize(defaultTextsize);
canvas.drawText(displayText1, pointLine1Corner.x + defaultTextPadding, pointLine1Corner.y - defaultTextMarginBottom, p);
你应该使用 StaticLayout
为你绘制文本而不是 canvas.drawText
,使用 EmojiconHandler
的 addEmojis
方法将 SpannableString
转换为字符串emojicon 提供表情符号图标。并将 SpannableString
传递给 StaticLayout
并调用 draw
方法绘制文本
android 设备无法显示新的 ios9 表情符号。所以,我想用ios表情替换androidemoji.usingemojicon可以支持TextView和EditText。
但是,我有一个自定义视图使用 canvas.drawText() 绘制 text.This 将显示 android 表情符号。
如何解决这个问题?非常感谢。
Paint p = new Paint();
p.setAntiAlias(true);
p.setStrokeWidth(r);
p.setColor(outerCircleColor);
canvas.drawCircle(centerX, centerY, outerR, p);
p.setColor(centerColor);
canvas.drawCircle(centerX, centerY, r, p);
p.setStrokeWidth(lineWidth);
p.setColor(lineColor);
canvas.drawLine(centerX, centerY, pointLine1Corner.x, pointLine1Corner.y, p);
canvas.drawLine(pointLine1Corner.x, pointLine1Corner.y, pointLine1End.x, pointLine1End.y, p);
p.setColor(textColor);
p.setTextSize(defaultTextsize);
canvas.drawText(displayText1, pointLine1Corner.x + defaultTextPadding, pointLine1Corner.y - defaultTextMarginBottom, p);
你应该使用 StaticLayout
为你绘制文本而不是 canvas.drawText
,使用 EmojiconHandler
的 addEmojis
方法将 SpannableString
转换为字符串emojicon 提供表情符号图标。并将 SpannableString
传递给 StaticLayout
并调用 draw
方法绘制文本