GLSurfaceView 中怎么样刷新一张2D bitmap? 如题,GLSurfaceView 中怎么样刷新一张2D bitmap?可不可以将这个bitmap作为纹理贴到一个方块面上显示,然后刷新这个纹理?bow~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Canvas canvas = holder.lockCanvas(null);//获取画布 Paint mPaint = new Paint(); mPaint.setColor(Color.BLUE); canvas.drawRect(new RectF(40,60,80,80), mPaint); holder.unlockCanvasAndPost(canvas);//解锁画布,提交画好的图像应该是extend自surfaceview吧,对于2D图像,选Rect就可刷新你通过这种方式试一下 Canvas canvas = mHolder.lockCanvas(); 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的 "选Rect就可刷新" 这个能说的具体点吗?谢谢。 这代码是在缩放图片吧?OpenGL中怎么刷新图片呢? 楼主这个问题得到解决了吗?我现在也在做一个截图功能,遇到同样的问题了 。就是采用surfaceView 与Mediaplay 结合进行视频播放,截播放过程中的图片。各位大侠有没有好的解决办法呢。 surfaceView中截图:1.可以让sufaceview 的draw函数将图片画到一张事先准备好的截图bitmap上。2.然后用flag去控制显示那一副图片。目前我是这样来切换对话框和游戏界面的。 关于startActivityForResult 和含有tab子activity的问题 Eclipse alt+/ 温馨提示 在有些xml文件里面并不能奏效 急!!!安卓程序修改配置文件后不能及时更新 简单的小问题 NDK配置问题 android TabHost 点击tab切换不了 Andoird模拟器使用PC机串口出现问题 关于双屏显示的问题 微信朋友圈数据库怎么建表 android中listview的item有checkbox 关于随机选择时间和拒绝安装特定软件的问题 求助,怎么才能让超出屏幕的部分显示出来
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去控制显示那一副图片。目前我是这样来切换对话框和游戏界面的。