這個(gè)話題給大家深入講講Image.createImage(width,height);
我始終認(rèn)為:深入的理解一種機(jī)制,然后才有靈活多變的應(yīng)用!如果你不能深入的理解它,那么也只會(huì)死板的套用,如果你想做個(gè)copy代碼的程序員,那么就沒(méi)必要看我的文章。
Image.createImage(width,height);這個(gè)方法到底是做什么用的?
我們先看下doc里的一段說(shuō)明:
An immutable image may be created from a mutable image through the use of the
createImage
method. It is possible to create a mutable copy of an immutable image using a technique similar to the following:
|
這句話的意思是:通過(guò)Image.createImage(width,height);可以得到一份圖片的copy。
也就是說(shuō):我們可以把某個(gè)圖片緩存在內(nèi)存中,然后隨時(shí)可以把它調(diào)出來(lái)用。
好,理解了這點(diǎn),下面的就好辦!
一:既然這個(gè)方法緩存圖片的一份copy,那么我們就可以利用它來(lái)緩存我們的圖片,然后在需要的時(shí)候把它刷新的手機(jī)屏幕上(也就是g.drawImage()把它畫到屏幕上),從而使這個(gè)方法可用于雙緩沖技術(shù)。
當(dāng)然,這個(gè)功能是我們常用的,我這里就不羅嗦了!
我要將的是下面的一個(gè)應(yīng)用!
二:利用Image.createImage(windth,height)來(lái)繪制背景。
可能大家看到這個(gè)標(biāo)題都很詫異,我們常用繪制背景的方法是剪貼(setClip())。
下面我來(lái)演示怎么用這個(gè)方法繪制背景title。
首先,我們計(jì)算需要用的title圖片塊,也就是拼湊大地圖的小圖片塊。
然后,我們?cè)趦?nèi)存中把這些小圖片塊按照數(shù)組索引號(hào)緩存在內(nèi)存中。
最后,繪制地圖的時(shí)候我們?cè)侔堰@些小圖片塊取出來(lái)。
結(jié)果就是,因?yàn)槲覀儼堰@些小圖片塊緩存在內(nèi)存塊中,所以取出來(lái)的時(shí)候更快。
下面是演示代碼:
Image img[] = new Image[4];
for(int i = 0;i < 4;i++)
?img[i] = Image.createImage(width,height);
int[][] mapTitle = { 1,1,1,1,1,1,1,1,
???????????????????????????????? 2,3,1,0,3,2,2,2
.........
}
最后通過(guò)索引把圖片取出來(lái)畫到屏幕上就OK了。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=640337
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
