android - 当文本包含表情符号时,表情符号无法随画布旋转
问题描述
我正在使用旋转和缩放画布canvas.setMatrix()
,然后使用canvas.drawText();
. 这按预期工作。但是当我尝试绘制包含表情符号(Android 设备的默认表情符号)的文本时,它们不会被旋转。文本中的其他所有内容都按预期旋转。表情符号的绘制和缩放也可以正常工作,只是旋转不起作用,我发现它只出现在android7.0或7.0以下。
public void draw(Canvas canvas) {
if (TextUtils.isEmpty(mText)) {
drawCursor(canvas);
return;
}
float allTextHeight = mTextLineHeight * mLines.length;
float y = (mHeight - allTextHeight) / 2;
float offset = mPaint.getFontMetrics().ascent;
canvas.save();
canvas.translate(mWidth / 2, 0);
float initY = y;
for (String line : mLines) {
drawText(canvas, line, 0f, y - offset, mPaint, initY);
y += mTextLineHeight;
}
canvas.restore();
}
解决方案
推荐阅读
- android - 为特定类调用模拟方法 mockito
- javascript - 定位网站中的所有链接 - JavaScript
- r - 测试相同结构的嵌套列表
- rally - Java 中的 RallyApi - 尝试返回功能的项目层次结构
- node.js - 使用节点运行 js 文件给了我一个“HTMLDivElement”未定义。我需要导入它,还是特定于 Node 之外的浏览器?
- c++ - 谷歌测试夹具作为班级成员
- c# - 在完成当前异步方法(wpf)之前允许所有正在运行的任务完成的通用方法?
- javascript - setState 是否需要一些时间来执行?
- r - 如何找到在分类变量中具有两个组之一的连续变量的 SD 和均值
- java - 如何使用 mockito 模拟泛型方法?