Android 具有自定义字体的文本纹理OpenGL ES
由于在Opengl es(或Opengl)方面没有什么经验,我希望有人能帮我解决这个问题 我正在创建一个opengl es应用程序,我希望能够动态创建我的按钮文本等 这有两个明显的原因: -模块化(不使用photoshop快速更改文本) -以便以后能够添加语言 有人能给我指点教程吗,或者至少给我一些基本的步骤/功能:Android 具有自定义字体的文本纹理OpenGL ES,android,fonts,opengl-es,textures,Android,Fonts,Opengl Es,Textures,由于在Opengl es(或Opengl)方面没有什么经验,我希望有人能帮我解决这个问题 我正在创建一个opengl es应用程序,我希望能够动态创建我的按钮文本等 这有两个明显的原因: -模块化(不使用photoshop快速更改文本) -以便以后能够添加语言 有人能给我指点教程吗,或者至少给我一些基本的步骤/功能: 从文本中创建纹理 加载自定义字体以显示具有所选自定义字体的文本纹理 说明我是否可以用这个来加载汉字 致意 杰森·罗杰斯(Jason Rogers)我不知道这是否是最好的方法,我
- 从文本中创建纹理
- 加载自定义字体以显示具有所选自定义字体的文本纹理
- 说明我是否可以用这个来加载汉字
杰森·罗杰斯(Jason Rogers)我不知道这是否是最好的方法,我以前也没有这样做过。。。但我会这样做:
- 创建一个描述文本外观的
对象Paint
- 设置字体(
)、大小(Paint.setTypeFace()
)、颜色等所需的参数Paint.setTextSize()
- 使用
和要绘制的字符串测量所需位图的大小Paint.getTextBounds()
- 使用
创建该大小的新位图,确保其具有alpha组件bitmap.createBitmap()
- 使用创建的位图创建画布,以便使用
绘制新画布(位图)
- 使用创建的绘制对象和所需的字符串,将文本绘制到位图:
Canvas.drawText()
- 使用
将位图缩放为下一个更大的尺寸(x和y的2次方)。如果你需要的话,我有一个方便的函数(将其四舍五入到2的幂)bitmap.createScaledBitmap()
- 使用
GLUtils.texImage2D()
- 使用纹理绘制四边形/精灵;使用测量的文字尺寸适当缩放
希望这有点帮助。干杯,阿尔特。在我们的应用程序中,我们决定使用android XML布局而不是OpenGL ES绘制HUD(按钮、图标、文本) 这有几个原因:
- xml布局和控件的所有功能都是现成的
- 更容易处理点击和屏幕旋转
- 不需要创建/调整纹理大小
- 对资源文件夹的开箱即用支持(多语言)
GlSurfaceView
作为子视图添加到主视图中即可