Android 使用Renderscript绘制旋转文本

Android 使用Renderscript绘制旋转文本,android,text,orientation,drawtext,renderscript,Android,Text,Orientation,Drawtext,Renderscript,我正在尝试使用带有Renderscript的rsgDrawText显示旋转90度的文本。 字体类和rsgDrawText调用似乎不支持任何文本方向。 我无法在纵向/横向中旋转活动,因此我需要找出另一种方法来实现这一点。 我尝试了使用rsMatrixRotate对顶点着色器进行一些实验,但文本似乎不受此转换的影响。 我使用的是一个透明的曲面,它只在另一个活动的顶部使用Renderscript绘制文本。因此,任何类似于改变曲面方向本身的操作都可能很好。 使用Renderscript绘制旋转90度的文

我正在尝试使用带有Renderscript的rsgDrawText显示旋转90度的文本。 字体类和rsgDrawText调用似乎不支持任何文本方向。 我无法在纵向/横向中旋转活动,因此我需要找出另一种方法来实现这一点。 我尝试了使用rsMatrixRotate对顶点着色器进行一些实验,但文本似乎不受此转换的影响。 我使用的是一个透明的曲面,它只在另一个活动的顶部使用Renderscript绘制文本。因此,任何类似于改变曲面方向本身的操作都可能很好。
使用Renderscript绘制旋转90度的文本的最佳方法是什么?

您可以使用
glMatrixRotate
创建旋转矩阵,然后使用
rsgProgramVertexLoadModelMatrix
将该矩阵加载为模型矩阵。我怀疑你在实验中错过的是后一部分

例如,这个简单的renderscript将在屏幕上(200200)处绘制“Hello!”,然后再次围绕文本的左下角旋转90度

int root() {
    rsgClearColor(0.0, 0.0, 0.0, 0.0);
    rsgFontColor(1.0, 1.0, 1.0, 1.0);
    rsgDrawText("Hello!", 200, 200);

    rs_matrix4x4 matrix;
    rsMatrixLoadIdentity(&matrix);
    rsMatrixTranslate(&matrix, 200, 200, 0);
    rsMatrixRotate(&matrix, 90, 0, 0, 1);
    rsgProgramVertexLoadModelMatrix(&matrix);
    rsgDrawText("Hello!", 0, 0);

    return 0;
}