如题,GLSurfaceView 中怎么样刷新一张2D bitmap?
可不可以将这个bitmap作为纹理贴到一个方块面上显示,然后刷新这个纹理?
bow~~
可不可以将这个bitmap作为纹理贴到一个方块面上显示,然后刷新这个纹理?
bow~~
解决方案 »
- 如何实现点击状态栏图标后回到activity?
- android案例教程资料汇集
- 关于webview 的onPageStarted 方法使用.
- 可以安装在Androrid2.3的无线上网卡?
- 定义一个添加View后自动换行的ViewGroup,但是自定义的ViewGroup 的layout_height不管是怎么设置都是全满全屏的。
- 自己继承的类无法用在xml里
- 心跳包消耗很多服务器资源吗,一般占多少比例
- 新手安卓开发环境配置求助
- 安卓socket:DataInputStream read接收死锁,求大神指点
- android Socket请求网络一次返回多条数据怎么解析
- 关于随机选择时间和拒绝安装特定软件的问题
- 求助,怎么才能让超出屏幕的部分显示出来
Paint mPaint = new Paint();
mPaint.setColor(Color.BLUE);
canvas.drawRect(new RectF(40,60,80,80), mPaint);
holder.unlockCanvasAndPost(canvas);//解锁画布,提交画好的图像应该是extend自surfaceview吧,对于2D图像,选Rect就可刷新
你通过这种方式试一下
Matrix matrix = new Matrix();
PointF point = new PointF(); if(mScales >= 0)
{
float scaleWidth = ((float)(mView.getWidth() - 2) / (float)mWidth);
float scaleHeight = ((float)(mView.getHeight() - 2) / (float)mHeight);
float DignitalscaleWidth = scaleWidth * mScales;
float DignitalscaleHeight = scaleHeight * mScales;
float TranslateX = (mTranslate.x)/(DignitalscaleWidth);
float TranslateY = (mTranslate.y)/(DignitalscaleHeight);
if(DignitalscaleWidth > scaleWidth)
{
point.x = (DignitalscaleWidth - scaleWidth)*(float)(mWidth)/(2*DignitalscaleWidth) + TranslateX;
point.y = (DignitalscaleHeight - scaleHeight)*(float)(mHeight)/(2*DignitalscaleHeight) + TranslateY;
}
else
{
point.x = (scaleWidth - DignitalscaleWidth)*(float)(mWidth)/(2*DignitalscaleWidth) + TranslateX;
point.y = (scaleHeight - DignitalscaleHeight)*(float)(mHeight)/(2*DignitalscaleHeight) + TranslateY;
}
matrix.postScale(DignitalscaleWidth, DignitalscaleHeight, point.x, point.y);
}
canvas.drawColor(Color.BLACK);
canvas.drawBitmap(VideoBlt, matrix, null);
mHolder.unlockCanvasAndPost(canvas);
VideoBlt 就是bitmap 但是一定要是RGB565的
这代码是在缩放图片吧?
OpenGL中怎么刷新图片呢?
1.可以让sufaceview 的draw函数将图片画到一张事先准备好的截图bitmap上。
2.然后用flag去控制显示那一副图片。目前我是这样来切换对话框和游戏界面的。