雜語:看了很多程序猿都有寫博客的習(xí)慣,看來我也得練練,不管寫的好不好了,學(xué)到點什么體會就寫寫吧。
內(nèi)容解說:這幾天開始學(xué)游戲地圖制作,今天小小的總結(jié)一下Canvas的clipRect()接口的使用。
1)選取要在畫布上繪制(刷新)的區(qū)域,如圖以(x, y)為起點坐標(biāo)、寬w、高h(yuǎn)的區(qū)域

2)選擇要繪制的圖片,不一定是剛好寬高為(w,h),大圖就需要切割了(本例子繪制綠色區(qū)域)

3)將圖片繪制到畫布上,使得綠色區(qū)域與白色方塊重合

4)最后效果圖

代碼解說:
canvas.save();
canvas.clipRect(x1, y1, x1 + w, y1 + h);
canvas.drawBitmap(bitmap, x2, y2, paint);
canvas.restore();
1、save()先把畫布的數(shù)據(jù)保存了(如matrix等),最后繪制完后再restore()則把中間對畫布坐標(biāo)等操作forget掉;
2、clipRect()截取畫布中的一個區(qū)域;
3、drawBitmap()繪制圖片到(x2, y2)上,則綠色部分剛好繪制到(x1, y1)上,而沒有被clip的區(qū)域則不會繪圖;
4、restore()最后要將畫布回復(fù)原來的數(shù)據(jù)(記住save()跟restore()要配對使用)。
5、小小的代碼,廢話挺多的