我使用canvas.setMatrix()
旋转和缩放画布,然后使用canvas.drawText();
在画布上绘制文本。这是按预期工作但当我尝试绘制包含表情符号(Android设备的默认表情符号)的文本时,它们不会被旋转。文本中的其他所有内容都按预期旋转。此外,绘图+缩放与emojis的预期工作一样,它只是旋转不起作用。
我真的想避免使用另一个位图绘制表情符号的解决方案,然后应用旋转在画布上绘制该位图。
0转的文字:https://i.gyazo.com/68ca0a13a1178e1614c976d4f041c8ee.png 已应用轮播的文字:https://i.gyazo.com/3f9f9150b89e387e64cb9fc79737ca7d.png
为清楚起见,表情符号是String元素的一部分。
if(text != null && text.length > 0){
canvas.save();
canvas.setMatrix(getDrawingMatrix(rect)); //Get a matrix with scaling, rotation & transformation applied.
for(int i = 0; i < text.length; i++){ //text is a string array containing multiple lines of text.
String string = text[i];
if(string.length() > 0){
canvas.drawText(string, 0, (i)*paint.descent() - (i+1)*paint.ascent(), paint); //each line has different y-value.
}
}
canvas.restore(); //after drawing the matrix is restored to default.
}
哦,刚刚发现这实际上是重复的:emojis not rotating with canvas