【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】瘋狂ios講義瘋狂連載之顯示動(dòng)畫(huà)_第1頁(yè)
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】瘋狂ios講義瘋狂連載之顯示動(dòng)畫(huà)_第2頁(yè)
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】瘋狂ios講義瘋狂連載之顯示動(dòng)畫(huà)_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】瘋狂ios講義瘋狂連載之顯示動(dòng)畫(huà)

UIImage專(zhuān)門(mén)用于顯示各種位圖該類(lèi)支持表12.1所示的各種圖片格式。當(dāng)系統(tǒng)內(nèi)存緊張時(shí)UIImage會(huì)將圖片數(shù)據(jù)從UIImage對(duì)象中清理出去來(lái)以節(jié)省系統(tǒng)內(nèi)存這里的清理行為只是清理UIImage內(nèi)部存儲(chǔ)的圖片數(shù)據(jù)并不清理UIImage對(duì)象本身。當(dāng)程序使用一個(gè)圖片數(shù)據(jù)被清理過(guò)的UIImage對(duì)象時(shí)該UIImage將會(huì)自動(dòng)從原始的圖片文件中加載圖片數(shù)據(jù)。盡量避免使用UIImage加載過(guò)大如大于1024像素×1024像素的圖片如果程序?qū)嵲谛枰虞d這種大圖片可以考慮將該圖片分解成多張小圖片進(jìn)行加載。如果用UIImage來(lái)顯示靜止的圖片UIImage提供了如下常用的類(lèi)方法。+p_w_picpathNamed:該方法用于加載指定文件名對(duì)應(yīng)的圖片。該方法有緩存機(jī)制如果該方法試圖加載的文件不存在它才會(huì)去加載圖片文件并緩存它如果系統(tǒng)已經(jīng)緩存過(guò)指定的圖片該方法將直接使用已緩存的圖片。當(dāng)程序需要頻繁地加載、卸載圖片文件時(shí)不應(yīng)該使用該方法來(lái)加載圖片。+p_w_picpathWithContentsOfFile:該方法用于加載指定文件名對(duì)應(yīng)的圖片。+p_w_picpathWithData:該方法用于根據(jù)NSData中封裝的圖片數(shù)據(jù)來(lái)創(chuàng)建圖片。+p_w_picpathWithData:scale:該方法用于根據(jù)NSData中封裝的圖片數(shù)據(jù)來(lái)創(chuàng)建圖片并按指定的縮放因子對(duì)圖片進(jìn)行縮放。+p_w_picpathWithCGImage:該方法用于根據(jù)指定的CGImageRef對(duì)象來(lái)創(chuàng)建UIImage。+p_w_picpathWithCGImage:scale:orientation:該方法用于根據(jù)指定的CGImageRef對(duì)象來(lái)創(chuàng)建UIImage并將圖片縮放到指定比例。該方法的最后一個(gè)參數(shù)指定對(duì)圖片執(zhí)行旋轉(zhuǎn)、鏡像等變換操作。上面這些方法涉及一個(gè)CGImageRef這是處理位圖的另一個(gè)API本節(jié)稍后會(huì)詳細(xì)介紹。通過(guò)上面介紹的這些方法UIImage可以加載不同數(shù)據(jù)源的圖片包括加載應(yīng)用程序資源包的圖片、加載網(wǎng)絡(luò)圖片和手機(jī)本地圖片。下面對(duì)UIImage需要讀取的圖片進(jìn)行簡(jiǎn)單分類(lèi)。如果程序需要從應(yīng)用資源包讀取圖片可借助UIImage的p_w_picpathNamed:方法進(jìn)行讀取例如如下代碼UIImage*p_w_picpath=[UIImagep_w_picpathNamed:@"fkjava.png"];如果需要從網(wǎng)絡(luò)讀取圖片可借助NSData的方法來(lái)加載指定URL對(duì)應(yīng)的網(wǎng)絡(luò)數(shù)據(jù)然后利用UImage的p_w_picpathWithData:方法來(lái)加載圖片即可。例如如下代碼NSURL*url=[NSURLURLWithString:@"/logo.jpg"];NSData*data=[NSDatadataWithContentsOfURL:url]UIImage*p_w_picpath=[UIImagep_w_picpathWithData:data];如果需要讀取手機(jī)本地的圖片只要先獲取圖片路徑再利用UIImage的p_w_picpathWithContentsOfFile:方法加載圖片即可。例如如下代碼NSString*path=[[NSHomeDirectory()stringByAppendingPathComponent:@"Documents"]stringByAppendingPathComponent:@"fkjava.png"];UIImage*p_w_picpath=[UIImagep_w_picpathWithContentsOfFile:path];除此之外UIImage還可以加載多張圖片并按指定時(shí)間間隔依次顯示多張圖片這就可以非常方便地實(shí)現(xiàn)動(dòng)畫(huà)效果。UImage提供了如下方法來(lái)加載多張圖片實(shí)現(xiàn)動(dòng)畫(huà)。+animatedImageNamed:duration:根據(jù)指定的圖片名來(lái)加載系列圖片。例如調(diào)用該方法時(shí)的第一個(gè)參數(shù)名為butterfly該方法將會(huì)自動(dòng)加載butterfly0.png、butterfly1.png、butterfly2.png等圖片。+animatedImageWithImages:duration:該方法需要傳入一個(gè)NSArray作為多張動(dòng)畫(huà)圖片。該NSArray中的每個(gè)元素都是UIImage對(duì)象。實(shí)例蝴蝶飛舞下面的實(shí)例使用UIImage加載多張圖片來(lái)顯示蝴蝶揮舞翅膀的動(dòng)畫(huà)再用一個(gè)UIImageView控件來(lái)顯示該圖片接下來(lái)使用定時(shí)器不斷地改變UIImageView位置即可完成該實(shí)例。創(chuàng)建一個(gè)SingleViewApplication本實(shí)例直接使用代碼來(lái)創(chuàng)建UIImageView、UIImage因此不需要修界面設(shè)計(jì)文件。下面是該實(shí)例控制器類(lèi)的實(shí)現(xiàn)部分的代碼。程序清單codes/12/12.1/ImageTest/ImageTest/FKViewController.m上面程序中的粗體字代碼使用UImage加載多張圖片并控制以動(dòng)畫(huà)形式播放多張圖片

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論