基于Android opengles的魔方开发总结(四)
来源:互联网 发布:电子教室软件 编辑:程序博客网 时间:2024/05/22 15:20
1.1. 屏幕中固定位置文本显示
为了更好的查看程序运行速度,在界面的右下方增加每帧所用时间显示。
该文本是固定在屏幕右下角显示,原理为将要显示的文本绘在图片中,然后将图片直接贴到屏幕的右下角,具体编码如下:
if(mTextureID==-1){
int fontSize = 32;
//设置字体、字体大小和字体颜色
Paint p = new Paint();
String familyName = "Times New Roman";
Typeface font = Typeface.create(familyName, Typeface.NORMAL);
p.setColor(Color.RED);
p.setTypeface(font);
p.setTextSize(fontSize);
//在Bitmap上绘制文字
String text = "旋转方块";
int textWidth = (int) Math.ceil(p.measureText(text));
int textHeight = (int) Math.ceil(-p.ascent()) + (int) Math.ceil(p.descent());
imageWidth = textWidth;
imageHeight = textHeight + 10;
Bitmap bitmap = Bitmap.createBitmap(imageWidth, imageHeight, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawText(text,0,textHeight, p);
int[] textures = new int[1];
gl.glGenTextures(1, textures, 0);
mTextureID = textures[0];
gl.glBindTexture(GL10.GL_TEXTURE_2D, mTextureID);
// Use Nearest for performance.
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER,GL10.GL_NEAREST);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER,GL10.GL_NEAREST);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S,GL10.GL_CLAMP_TO_EDGE);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T,GL10.GL_CLAMP_TO_EDGE);
//GL10.GL_MODULATE
gl.glTexEnvf(GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE,GL10.GL_REPLACE);
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
}
gl.glEnable(GL10.GL_TEXTURE_2D);
gl.glBindTexture(GL10.GL_TEXTURE_2D, mTextureID);
int[] crop = {0, imageHeight, imageWidth, -imageHeight};
((GL11)gl).glTexParameteriv(GL10.GL_TEXTURE_2D,GL11Ext.GL_TEXTURE_CROP_RECT_OES,crop, 0);
//将纹理直接画到屏幕中某位置
((GL11Ext)gl).glDrawTexiOES((AppConfig.gpViewport[2] - imageWidth)/2, 10 , 0,imageWidth, imageHeight);
gl.glDisable(GL10.GL_TEXTURE_2D);
全部源代码下载地址:
http://download.csdn.net/detail/tomatozq/4340801
- 基于Android opengles的魔方开发总结(四)
- 基于Android opengles的魔方开发总结
- 基于Android opengles的魔方开发总结(一)
- 基于Android opengles的魔方开发总结(二)
- 基于Android opengles的魔方开发总结(三)
- Android opengles 对GL10的封装 笔记(四)
- android开发LiveWallpaper流程(利用OpenGLES开发)
- android OpenGLES开发第一课 绘制简单的Polygon
- android利用OpenGLES开发动态壁纸用到的GLWallpaperService类
- Android上的OpenGLES程序--开发环境介绍
- 三阶魔方与四阶魔方总结
- 基于android系统的蓝牙开发总结
- 四阶魔方玩法总结V1.0
- Android OpenglES教程(1)
- opengles(四)让图像动起来
- 基于Opengles和android环境下的3D推箱子。
- android jni基于ffmpeg,opengles,egl的yuv视频播放功能
- android OpenGLES开发 第五课 纹理映射
- 逻辑地址,线性地址,物理地址的差别
- board.c:1: warning: target CPU does not support interworking
- Ubuntu自动备份软件包和制作本地源
- 两位数活多位乘法的计算编程
- 用VC时编译时的问题:cannot open Debug/test71.exe for writing
- 基于Android opengles的魔方开发总结(四)
- 两位数惩罚编程
- 1234
- 编写将出生日期转换为周几的程序
- 程序实现输出最大值
- warning: target CPU does not support interworking
- [学习笔记]学习主题模型(Topic Model)和PLSA( probabilistic latent semantic analysis)
- Java执行wmic命令获取系统环境变量
- Boost 库中的实用工具类使用入门