首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

游戏开发基础part4-Bitmap位图的点染与操作

2012-06-20 
游戏开发基础part4--Bitmap位图的渲染与操作游戏开发基础part4--Bitmap位图的渲染与操作知识点1:Bitmap与B

游戏开发基础part4--Bitmap位图的渲染与操作

游戏开发基础part4--Bitmap位图的渲染与操作

知识点1:Bitmap与BitmapFactory

如果想通过一张图片资源文件创建一个位图,则要通过位图工厂来索引图片资源文件,从而生成一张位图实例

BitmapFactory.decodeResource(Resources res,int Id)

作用:通过资源文件生成一张位图

第一个参数:资源实例

第二个参数:资源ID

实例:Bitmap bmp = BitmapFactory.decodeResource(this.getResources(),R.drawable.icon);

 

知识点2:绘制位图

drawBitmap(Bitmap bitmap,float left,float top,Paint paint)

作用:在画布上绘制一张位图

第一个参数:位图实例

第二、三个参数:位图的X,Y坐标

第四个参数:画笔实例

实例:canvas.drawBitmap(bmp,0,0,paint);

 

知识点3:旋转位图

rotate(float degrees,float px,float py)

作用:旋转位图

第一个参数:画布旋转的角度

第二、三个参数:画布的旋转点

如果旋转的角度大于0,顺时针旋转,反则逆时针旋转

实例:canvas.rotate(30,bmp.getWidth()/2,bmp.getHeight()/2);

     canvas.drawBitmap(bmp,0,0,paint);

 

知识点4:对画布的状态的操作

save(): 作用是用于保存当前画布的状态;

restore():作用是恢复上次保存的画布状态;

针对一张位图进行旋转的操作:

首先用画布的save()函数将其画布的状态保存起来,然后进行旋转,紧接着绘制位图,最后当位图绘制完后将画布的状态恢复restore()。

实例:canvas.save();

     canvas.rotate(30,bmp.getWidth()/2,bmp.getHeight()/2);

     canvas.drawBitmap(bmp,0,0,paint);

     canvas.restore();

     canvas.drawBitmap(bmp,100,0,paint);

 

知识点5:平移位图

translate(float dx, float dy)

作用:平移画布

第一个参数:在X轴上平移画布距离

第二个参数:在Y轴上平移画布距离

实例:canvas.save();

     canvas.translate(10,10);

     canvas.drawBitmap(bmp,0,0,paint)

     canvas.restore();

 

知识点6:缩放位图

scale(float sx,float sy,float px,float py)

作用:对画布进行缩放

第一个参数:对画布X轴的缩放比例

第二个参数:对画布Y周到缩放比例

第三、四个参数:对画布缩放的起始点

当缩放比例为1时表示画布没有进行缩放;当比例值大于1时表示放大;当比例值小于1且大于0时表示缩小。

实例:canvas.save();

     canvas.scale(2f,2f,50 + bmp.getWidth()/2,50 + bmp.getHeight()/2);

     canvas.drawBitmap(bmp,50,50,paint);

     canvas.restore();

     canvas.drawBitmap(bmp,50,50,paint);

 

知识点7:镜像反转位图

X轴镜像操作:设置X轴的缩放比例为-1

canvas.scale(-1,1,100 + bmp.getWidth() /2,100 + bmp.getHieght()/2);
Y轴镜像操作:设置Y周的缩放比例为-1

canvas.scale(1,-1,100 + bmp.getWidth() /2 , 100 + bmp.getHeight() /2);

 

创建项目实例:BitmapProject

项目源代码:

==>MySurfaceView.java


 

 

    

 

热点排行