我正在尝试为我的Android应用程序创建一个自定义视图。在OnDraw
函数中,我尝试使用表情符号的Unicode
值来绘制一个表情符号,但似乎不起作用。以下是代码:
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,我发现表情符号在Canvas
上绘制的TextView
中呈现出来,但与在普通TextView
上设置的表情符号相比,它们显得明显暗淡,如下所示:
有什么想法吗?
String s = new String(Character.toChars(0xD83C)) + new String(Character.toChars(0xDF69)) ; //甜甜圈 canvas.drawText(s, 0.75f*width, 0.50f*height, mPaint);
- Curious