Android Canvas.drawText() 将字写在Bitmap上后emoji表情不显示
类似的问题在stockoverflow上也有:
https://stackoverflow.com/questions/47807621/draw-emoji-on-bitmap-with-drawtextonpath
我的代码如下:
private Bitmap convertText2Bitmap(String text) {
if (TextUtils.isEmpty(text)) {
return null;
}
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(Color.RED);
paint.setTextSize(sbTextSizeSP.getProgress());
paint.setDither(true);
paint.setFilterBitmap(true);
//测量text的宽高
Rect bounds = new Rect();
paint.getTextBounds(text, 0, text.length(), bounds);
Bitmap bitmap = Bitmap.createBitmap(bounds.width(), bounds.height(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
Paint.FontMetrics fontMetrics = paint.getFontMetrics();
float yPos = -fontMetrics.top;
canvas.drawText(text, 0, yPos, paint);
return bitmap;
}
大概在字体大于300px左右,bitmap上就没有emoji了。当字体小于300px是正常显示的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论