国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于Android系統(tǒng)的圖像加載方法及裝置的制造方法

      文檔序號(hào):9616130閱讀:408來(lái)源:國(guó)知局
      基于Android系統(tǒng)的圖像加載方法及裝置的制造方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及圖像處理技術(shù)領(lǐng)域,尤其涉及一種基于Android系統(tǒng)的圖像加載方法及裝置。
      【背景技術(shù)】
      [0002]隨著Android系統(tǒng)在各種終端中的應(yīng)用,例如在手機(jī)、電腦、智能電視等終端中的應(yīng)用,基于Android系統(tǒng)的應(yīng)用程序也越來(lái)越多,很多應(yīng)用程序中都會(huì)頻繁地處理圖像數(shù)據(jù),例如對(duì)圖片、視頻等的瀏覽、選擇等操作,需要實(shí)時(shí)、快速的響應(yīng)用戶的操作,在終端快速顯示用戶所操作的圖像數(shù)據(jù)。
      [0003]例如,在手機(jī)等移動(dòng)終端中,當(dāng)用戶進(jìn)入相冊(cè)的顯示界面通常會(huì)將相冊(cè)中的相片在同一個(gè)界面中以多張相片的形式在終端進(jìn)行顯示,以便于用于快速地瀏覽相冊(cè)中的圖片、視頻等信息。在Android 4.4版本中,當(dāng)用戶進(jìn)入相機(jī)相冊(cè)的顯示界面時(shí),Android系統(tǒng)會(huì)在同一顯示界面同時(shí)顯示三張圖像(在界面的中間居中顯示一張完整的圖像,在該圖像的左右兩側(cè)各顯示相鄰的其它圖像的部分內(nèi)容)。在用戶對(duì)相機(jī)的相冊(cè)瀏覽的過(guò)程中,可能會(huì)用手指快速滑動(dòng)界面,以便可以對(duì)相冊(cè)中的相片、視頻等進(jìn)行快速瀏覽、選擇。但現(xiàn)有技術(shù)中,在對(duì)相冊(cè)中的圖像進(jìn)行快速瀏覽的過(guò)程中存在如下問(wèn)題:在手指快速滑動(dòng)圖像顯示界面的過(guò)程中,終端界面上所顯示的圖像在滑動(dòng)速度較快時(shí)出現(xiàn)無(wú)法正常顯示(例如,圖像內(nèi)容顯示為灰色框、花屏等)的現(xiàn)象,在滑動(dòng)操作結(jié)束后,在圖像的顯示界面停止滑動(dòng)后,才會(huì)在界面上緩慢地對(duì)圖像進(jìn)行顯示,且在查看含有大量視頻的圖像時(shí),在圖像滑動(dòng)顯示的過(guò)程中,存在卡頓現(xiàn)象。上述問(wèn)題在終端系統(tǒng)芯片處理能力較低的情況時(shí),問(wèn)題尤為突出。

      【發(fā)明內(nèi)容】

      [0004]本發(fā)明解決的是在Android系統(tǒng)的移動(dòng)終端中快速瀏覽圖像時(shí),圖像無(wú)法正常顯示且在滑動(dòng)顯示的過(guò)程中可能出現(xiàn)卡頓的問(wèn)題。
      [0005]為解決上述問(wèn)題,本發(fā)明技術(shù)方案提供一種基于Android系統(tǒng)的圖像加載方法,包括:
      [0006]通過(guò)Android系統(tǒng)Framerwork層的MediaStore類獲取第一圖像的Bitmap數(shù)據(jù),所述第一圖像為Android系統(tǒng)對(duì)象需要加載的圖像;
      [0007]將所述第一圖像的Bitmap數(shù)據(jù)加載到所述Android系統(tǒng)對(duì)象中。
      [0008]可選的,所述第一圖像包括圖片或者視頻中的任意一種。
      [0009]可選的,所述獲取所述第一圖像的Bitmap數(shù)據(jù)的過(guò)程包括:調(diào)用所述MediaStore類的getThumbnail方法,以獲取所述第一圖像的Bitmap數(shù)據(jù)。
      [0010]可選的,所述獲取所述第一圖像的Bitmap數(shù)據(jù)的過(guò)程包括:通過(guò)所述MediaStore類的 getThumbnail 方法調(diào)用 Andr1d 系統(tǒng)的 native 層 nativeDecodeFileDescriptor 函數(shù)生成所述第一圖像的Bitmap數(shù)據(jù)。
      [0011]可選的,所述方法還包括:對(duì)生成所述第一圖像的Bitmap數(shù)據(jù)的異步線程采用并發(fā)運(yùn)行的模式,以實(shí)現(xiàn)并行獲取多個(gè)第一圖像的Bitmap數(shù)據(jù)。
      [0012]為解決上述問(wèn)題,本發(fā)明技術(shù)方案還提供一種基于Android系統(tǒng)的圖像加載裝置,包括:
      [0013]獲取單元,用于通過(guò)Android系統(tǒng)Framerwork層的MediaStore類獲取第一圖像的Bitmap數(shù)據(jù),所述第一圖像為Android系統(tǒng)對(duì)象需要加載的圖像;
      [0014]加載單元,用于將所述第一圖像的Bitmap數(shù)據(jù)加載到所述Android系統(tǒng)對(duì)象中。
      [0015]可選的,所述第一圖像包括圖片或者視頻中的任意一種。
      [0016]可選的,所述獲取單元包括:調(diào)用單元,用于通過(guò)調(diào)用所述MediaStore類的getThumbnail方法獲取所述第一圖像的Bitmap數(shù)據(jù)。
      [0017]可選的,所述獲取單元還包括:生成單元,用于通過(guò)所述MediaStore類的getThumbnail 方法調(diào)用 Android 系統(tǒng) native 層 nativeDecodeFileDescriptor 函數(shù)生成所述第一圖像的Bitmap數(shù)據(jù)。
      [0018]可選的,所述裝置還包括:控制單元,用于控制對(duì)生成所述第一圖像的Bitmap數(shù)據(jù)的異步線程采用并發(fā)運(yùn)行的模式,以并行獲取多個(gè)第一圖像的Bitmap數(shù)據(jù)。
      [0019]與現(xiàn)有技術(shù)相比,本發(fā)明的技術(shù)方案具有以下優(yōu)點(diǎn):
      [0020]通過(guò)Android系統(tǒng)Framerwork層的MediaStore類獲取第一圖像的Bitmap數(shù)據(jù),所述第一圖像為Android系統(tǒng)對(duì)象需要加載的圖像;進(jìn)而將所述第一圖像的Bitmap數(shù)據(jù)加載到所述Android系統(tǒng)對(duì)象中的方法,可以有效減少生成Bitmap數(shù)據(jù)的耗時(shí),使得在Android系統(tǒng)的手機(jī)等移動(dòng)終端快速瀏覽圖像的過(guò)程中,可以實(shí)時(shí)正常顯示圖像且不存在卡頓的現(xiàn)象。
      [0021]進(jìn)一步,對(duì)生成所述第一圖像的Bitmap數(shù)據(jù)的異步線程采用并發(fā)運(yùn)行的模式,可以實(shí)現(xiàn)同時(shí)并行獲取多個(gè)第一圖像的Bitmap數(shù)據(jù),以解決現(xiàn)有技術(shù)中采用的流的方式生成Bitmap數(shù)據(jù)時(shí)若采用并發(fā)運(yùn)行方式所可能導(dǎo)致的在顯示圖像的過(guò)程出現(xiàn)花屏的現(xiàn)象,提高Android系統(tǒng)的圖像加載、顯示性能。
      【附圖說(shuō)明】
      [0022]圖1是本發(fā)明技術(shù)方案提供的圖像加載方法的流程示意圖;
      [0023]圖2是本發(fā)明實(shí)施例提供的圖像加載方法的流程示意圖;
      [0024]圖3是本發(fā)明實(shí)施例提供的圖像加載裝置的結(jié)構(gòu)示意圖。
      【具體實(shí)施方式】
      [0025]在現(xiàn)有技術(shù)的Android系統(tǒng)中,用戶在相機(jī)相冊(cè)等圖像預(yù)覽界面,通常會(huì)在同一顯示界面同時(shí)顯示多張圖像,例如,在界面的中間居中顯示一張完整的圖像,在該圖像的左右兩側(cè)各顯示相鄰的其它圖像的部分內(nèi)容。用戶在對(duì)圖像瀏覽的過(guò)程中,可以在水平方向滑動(dòng)瀏覽圖像。在用戶快速地滑動(dòng)圖像界面時(shí),在滑動(dòng)速度較快時(shí)圖像顯示界面容易出現(xiàn)圖像無(wú)法正常顯示、滑動(dòng)過(guò)程中圖像顯示卡頓等問(wèn)題。例如,在移動(dòng)終端的芯片處理器為單核處理器時(shí),在快速瀏覽圖像的過(guò)程中,會(huì)出現(xiàn)在滑動(dòng)過(guò)程中圖像顯示為灰色框,在滑動(dòng)停止后才緩慢顯示圖片圖像的問(wèn)題,且在圖像為視頻數(shù)據(jù)時(shí),還會(huì)出現(xiàn)明顯的卡頓現(xiàn)象;而在移動(dòng)終端的芯片處理器為四核處理器時(shí),在用戶快速地滑動(dòng)圖像界面時(shí),雖然滑動(dòng)界面停止后顯示圖像的速度會(huì)有改善,但也同樣可能存在滑動(dòng)過(guò)程中圖像顯示為灰色框以及滑動(dòng)過(guò)程中圖像顯示卡頓的問(wèn)題。
      [0026]出現(xiàn)上述問(wèn)題的主要原因,是由于Android系統(tǒng)的連續(xù)、快速顯示圖像時(shí)的設(shè)計(jì)原理所造成。在Android系統(tǒng)中,會(huì)通過(guò)設(shè)置預(yù)定個(gè)數(shù)的緩沖器(buffer)用于滑動(dòng)過(guò)程中圖像數(shù)據(jù)的暫時(shí)存放,所述緩沖器的個(gè)數(shù)可以根據(jù)同一界面所要顯示的圖像的個(gè)數(shù)進(jìn)行相應(yīng)的設(shè)定。在圖像滑動(dòng)的過(guò)程中,通過(guò)連續(xù)不斷的計(jì)算,將滑動(dòng)過(guò)程中當(dāng)前需要顯示的圖像數(shù)據(jù)添加到所述緩沖器中,將無(wú)需顯示的圖像數(shù)據(jù)移出所述緩沖器。上述添加圖像數(shù)據(jù)到緩沖器的過(guò)程就是啟動(dòng)異步線程生成用于顯示圖像的Bitmap數(shù)據(jù)的過(guò)程,若在圖像滑動(dòng)的過(guò)程中無(wú)法及時(shí)生成用于顯示圖像的Bitmap數(shù)據(jù),則在顯示界面就會(huì)出現(xiàn)灰色框的現(xiàn)象。
      [0027]在Android系統(tǒng)中,例如在Android 4.4版本中,相冊(cè)等圖像瀏覽過(guò)程中,用于顯示圖像的Bitmap數(shù)據(jù)采用流的方式進(jìn)行生成。在采用流的方式生成Bitmap數(shù)據(jù)的過(guò)程中,通過(guò)調(diào)用Android系統(tǒng)的底層nativeDecodeStream方法實(shí)現(xiàn)Bitmap數(shù)據(jù)的生成的,但此方法生成Bitmap數(shù)據(jù)的過(guò)程是非常耗時(shí)的,這就會(huì)直接導(dǎo)致,在圖像快速瀏覽的過(guò)程中,無(wú)法及時(shí)生成需要顯示的圖像的Bitmap數(shù)據(jù),進(jìn)而就會(huì)導(dǎo)致在顯示界面出現(xiàn)灰色框的現(xiàn)象。
      [0028]而且由于生成用于顯示圖像的Bitmap數(shù)據(jù)采用流的方式生成,而通過(guò)流的方式生成Bitmap數(shù)據(jù)是比較耗時(shí),且對(duì)內(nèi)存的消耗是比較大的,因此現(xiàn)有技術(shù)中在生成Bitmap數(shù)據(jù)的異步線程運(yùn)行方式只能采用順序運(yùn)行方式,即先添加進(jìn)緩沖器的圖像數(shù)據(jù)用于生成Bitmap的異步線程先啟動(dòng),等該線程生成Bitmap結(jié)束之后再啟動(dòng)下一個(gè)用于生成另外圖像數(shù)據(jù)的Bitmap的異步線程。若在采用流的方式生成Bitmap數(shù)據(jù)的過(guò)程中,不采用順序運(yùn)行模式,而采用并發(fā)運(yùn)行模式,可能會(huì)導(dǎo)致在顯示圖像的過(guò)程中出現(xiàn)花屏的現(xiàn)象。
      [0029]為解決上述問(wèn)題,本發(fā)明技術(shù)方案提供一種基于Android系統(tǒng)的圖像加載方法,圖1為本發(fā)明技術(shù)方案提供的圖像加載方法的流程示意圖。
      [0030]首先執(zhí)行步驟S1,通過(guò)Android系統(tǒng)Framerwork層的MediaStore類獲取第一圖像的Bitmap數(shù)據(jù),所述第一圖像為Android系統(tǒng)對(duì)象需要加載的圖像。
      [0031]在Android系統(tǒng)的對(duì)象需要加載圖像時(shí),通過(guò)所述MediaStore類獲取所要加載的圖像的Bitmap數(shù)據(jù),在本申請(qǐng)文件中,將所述對(duì)象需要加載的圖像稱為第一圖像。所述第一圖像包括圖片或者視頻中的任意一種。
      [0032]具體地,可以根據(jù)所述第一圖像為圖片或者視頻,通過(guò)MediaStore類調(diào)用MediaStore類所提供的圖片(Images)或視頻(Ved1s)的相關(guān)多媒體數(shù)據(jù)獲取所述第一圖像的Bitmap數(shù)據(jù)。
      [0033]執(zhí)行步驟S2,將所述第一圖像的Bitmap數(shù)據(jù)加載到所述Android系統(tǒng)對(duì)象中。
      [0034]在得到所述第一圖像的Bitmap數(shù)據(jù)后,將所述第一圖像的Bitmap數(shù)據(jù)加載到需要調(diào)用所述第一圖像的對(duì)象中進(jìn)行相應(yīng)的顯示。
      [0035]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更為明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施例做詳細(xì)的說(shuō)明。
      [0036]圖2是本實(shí)施例提供的基于Android系統(tǒng)的圖像加載方法的流程示意圖。如圖2所示,首先執(zhí)行步驟S201,調(diào)用Android系統(tǒng)Framework層的MediaStore類的getThumbnail方法獲取圖像信息。
      [0037]為了獲取第一圖像的Bitmap數(shù)據(jù),在本實(shí)施例中,通過(guò)調(diào)用Android系統(tǒng)Framework層的MediaStore類的getThumbnail方法,獲取相關(guān)的第一圖像的圖像信息,以實(shí)現(xiàn)對(duì)第一圖像的Bitmap數(shù)據(jù)的獲取。
      [0038]具體地,可以通過(guò)MediaStore類的getThumbnail方法進(jìn)而調(diào)用MediaStore類的getMiniThumbFromFile方法,獲取用于生成所述第一圖像的Bitmap數(shù)據(jù)的一些圖像信息,例如圖像的ID信息等參數(shù)信息,進(jìn)而在獲取到相關(guān)圖像信息后調(diào)用BitmapFactory的decodeFileDescriptor方法,以實(shí)現(xiàn)根據(jù)所述圖像信息獲取所述第一圖像的Bitmap數(shù)據(jù)。
      [0039]所述getThumbnail 方法、getMiniThumbFromFile 方法以及decodeFileDescriptor方法等均為Android系統(tǒng)所原生的函數(shù),這些方法的具體實(shí)現(xiàn)過(guò)程為本領(lǐng)域技術(shù)人員所熟知,所以在此不作詳細(xì)闡述。
      [0040]執(zhí)行步驟S202,判斷native層是否已對(duì)所述第一圖像進(jìn)行處理。
      [0041 ] 在Android系統(tǒng)中
      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1