android圖像繪制(七)ClipRect局部繪圖/切割原圖繪制總結(jié)
雜語(yǔ):看了很多程序猿都有寫博客的習(xí)慣,看來(lái)我也得練練,不管寫的好不好了,學(xué)到點(diǎn)什么體會(huì)就寫寫吧。
內(nèi)容解說(shuō):這幾天開始學(xué)游戲地圖制作,今天小小的總結(jié)一下Canvas的clipRect()接口的使用。
1)選取要在畫布上繪制(刷新)的區(qū)域,如圖以(x, y)為起點(diǎn)坐標(biāo)、寬w、高h(yuǎn)的區(qū)域
2)選擇要繪制的圖片,不一定是剛好寬高為(w,h),大圖就需要切割了(本例子繪制綠色區(qū)域)
3)將圖片繪制到畫布上,使得綠色區(qū)域與白色方塊重合
4)最后效果圖
代碼解說(shuō):
canvas.save();
canvas.clipRect(x1, y1, x1 + w, y1 + h);
canvas.drawBitmap(bitmap, x2, y2, paint);
canvas.restore();
1、save()先把畫布的數(shù)據(jù)保存了(如matrix等),最后繪制完后再restore()則把中間對(duì)畫布坐標(biāo)等操作forget掉;
2、clipRect()截取畫布中的一個(gè)區(qū)域;
3、drawBitmap()繪制圖片到(x2, y2)上,則綠色部分剛好繪制到(x1, y1)上,而沒(méi)有被clip的區(qū)域則不會(huì)繪圖;
4、restore()最后要將畫布回復(fù)原來(lái)的數(shù)據(jù)(記住save()跟restore()要配對(duì)使用)。
5、小小的代碼,廢話挺多的
相關(guān)文章
Android MediaPlayer音頻播放器封裝示例淺析
Android提供了許多方法來(lái)控制播放的音頻/視頻文件和流。其中該方法是通過(guò)一類稱為MediaPlayer。Android是提供MediaPlayer類訪問(wèn)內(nèi)置的媒體播放器的服務(wù),如播放音頻,視頻等為了使用MediaPlayer,我們要調(diào)用這個(gè)類的靜態(tài)create()方法2023-04-04Android Application存取公共數(shù)據(jù)的實(shí)例詳解
這篇文章主要介紹了Android Application存取公共數(shù)據(jù)的實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-07-07Android手勢(shì)操作簡(jiǎn)單實(shí)例講解
這篇文章主要為大家詳細(xì)介紹了Android手勢(shì)操作簡(jiǎn)單實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09Android嚴(yán)苛模式StrictMode使用詳解
StrictMode類是Android 2.3 (API 9)引入的一個(gè)工具類,可以用來(lái)幫助開發(fā)者發(fā)現(xiàn)代碼中的一些不規(guī)范的問(wèn)題,以達(dá)到提升應(yīng)用響應(yīng)能力的目的2018-01-01Flutter 封裝一個(gè) Banner 輪播圖效果的實(shí)例代碼
這篇文章主要介紹了Flutter 封裝一個(gè) Banner 輪播圖效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07android 限制某個(gè)操作每天只能操作指定的次數(shù)(示例代碼詳解)
這篇文章主要介紹了android 限制某個(gè)操作每天只能操作指定的次數(shù),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06Android 帶箭頭的指引tipLayout實(shí)現(xiàn)示例代碼
本篇文章主要介紹了Android 帶箭頭的指引tipLayout實(shí)現(xiàn)示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01