Java 在canvas.drawText上旋转表情符号
我正在使用Java 在canvas.drawText上旋转表情符号,java,android,canvas,Java,Android,Canvas,我正在使用canvas.setMatrix()旋转和缩放画布,然后使用canvas.drawText()在画布上绘制文本。这和预期的一样,但当我尝试绘制包含表情符号(android设备的默认表情符号)的文本时,它们不会旋转。文本中的所有其他内容都会按预期进行旋转。此外,绘图+缩放也可以像emojis预期的那样工作,只是旋转不起作用 我真的希望避免在另一个位图上绘制表情符号,然后在画布上绘制该位图并应用旋转 旋转为0的文本: 已应用旋转的文本: 为了清楚起见,表情符号是String元素的一部分 i
canvas.setMatrix()
旋转和缩放画布,然后使用canvas.drawText()在画布上绘制文本代码>。这和预期的一样,但当我尝试绘制包含表情符号(android设备的默认表情符号)的文本时,它们不会旋转。文本中的所有其他内容都会按预期进行旋转。此外,绘图+缩放也可以像emojis预期的那样工作,只是旋转不起作用
我真的希望避免在另一个位图上绘制表情符号,然后在画布上绘制该位图并应用旋转
旋转为0的文本:
已应用旋转的文本:
为了清楚起见,表情符号是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.
}
if(text!=null&&text.length>0){
canvas.save();
setMatrix(getDrawingMatrix(rect));//获取应用了缩放、旋转和变换的矩阵。
for(int i=0;i0){
canvas.drawText(字符串,0,(i)*paint.descent()-(i+1)*paint.ascent(),paint);//每行具有不同的y值。
}
}
canvas.restore();//绘制后,矩阵将恢复为默认值。
}
哦,刚刚发现这实际上是重复的: