使用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,使用 EmojiconHandleraddEmojis 方法将 SpannableString 转换为字符串emojicon 提供表情符号图标。并将 SpannableString 传递给 StaticLayout 并调用 draw 方法绘制文本