【发布时间】:2017-05-03 21:14:37
【问题描述】:
我正在尝试为我的 Android 应用创建一个 自定义视图。在OnDraw 函数中,我试图通过使用它的unicode 值来绘制一个emoji,但这似乎不起作用。以下是代码:
public class Scale extends View {
private final Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
private final static int LINE_WIDTH = 10;
...
...
@Override
protected void onDraw(final Canvas canvas) {
super.onDraw(canvas);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeWidth(LINE_WIDTH);
mPaint.setColor(Color.BLUE);
...
...
//This works
canvas.drawText("My text", 0.05f*width, 0.80f*height, mPaint);
//But this does NOT draw a doughnut!!
String s = new String(Character.toChars(0x1F369)); //Doughnut
canvas.drawText(s, 0.75f*width, 0.50f*height, mPaint);
}
}
有人知道这里是否有解决方法吗?还是我做错了什么?
编辑 [第二个问题]: 通过我在下面提交的 hack,我看到 Emojis 在 Canvas 上绘制的 TextView 内呈现,但它们与在普通 TextView 上设置的 Emojis 相比,明显暗淡,如下所示:
知道我在这里缺少什么吗?
【问题讨论】:
标签: java android canvas unicode emoji