Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在canvas.drawText上旋转表情符号_Java_Android_Canvas - Fatal编程技术网

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();//绘制后,矩阵将恢复为默认值。
}
哦,刚刚发现这实际上是重复的: