【问题标题】:drawing rotated text with Renderscript使用 Renderscript 绘制旋转文本
【发布时间】:2012-03-16 12:50:58
【问题描述】:

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

【问题讨论】:

    标签: android text orientation drawtext renderscript


    【解决方案1】:

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

    例如,这个简单的渲染脚本将绘制“Hello!”在屏幕上的 (200, 200) 处,然后再次围绕文本的左下角旋转 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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-14
      • 2017-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多