日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
鴻蒙HarmonyOS之獲取系統(tǒng)照片并解碼渲染顯示(附完整Demo)

想了解更多內(nèi)容,請訪問:

成都創(chuàng)新互聯(lián)2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元安達做網(wǎng)站,已為上家服務(wù),為安達各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108

和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos./#zz

聲明一下哦,這是我看了夏曹俊老師在周六的直播預(yù)習材料的加持下所寫的一個小demo,大家記得都去看夏老師的直播哦,入口主頁就有顯示。

不多說,先上demo的跑起來的效果,如下兩張圖:點擊顯示圖片的按鈕之后就會顯示出一張圖片(圖片是個什么玩意,知足吧,我拿遠程模擬機拍攝的)

完整demo在附件中進行下載

PS說一下操作步驟吧,把demo燒進手機,記住此時候的手機是沒有圖片的,先打開照相機拍攝一張圖片,然后你就會得到和下面截圖一樣的什么玩意的圖片,然后打開demo,點擊顯示圖片按鈕就會顯示你拍攝到的圖片了)

老規(guī)矩還是先說一下大概思路:

1.讀取本機的圖片,首先你得有權(quán)限,所以先想辦法獲得權(quán)限

2.獲得權(quán)限之后,就可以使用類似數(shù)據(jù)庫的搜索方法來搜索圖片的ID了

3.獲得ID之后,然后將其轉(zhuǎn)換為uri

4.得到uri之后,然后使用uri生成Pixmap

5.得到Pixmap之后,使用Image來渲染其Pixmap

1.來獲得讀取照片的權(quán)限

在config中添加如下配置文件:

 
 
 
 
  1. "reqPermissions": [{ 
  2.  
  3. "name": "ohos.permission.READ_USER_STORAGE" 
  4.  

 然后在java代碼中獲取到這個權(quán)限

 
 
 
 
  1. String[] permission = {"ohos.permission.READ_USER_STORAGE"}; 
  2.  
  3. requestPermissionsFromUser(permission,0); 

 2.獲得權(quán)限之后,就可以使用類似數(shù)據(jù)庫的搜索方法來搜索圖片的ID了

首先獲得一個DataAbilityHelper

 
 
 
 
  1. DataAbilityHelper helper = DataAbilityHelper.creator(getContext()); 

然后調(diào)用query查詢方法獲得圖片ID,這里其實只有一張

 
 
 
 
  1. ResultSet result = helper.query(AVStorage.Images.Media.EXTERNAL_DATA_ABILITY_URI, null, null); 
  2.  
  3. int mediaId = result.getInt(result.getColumnIndexForName(AVStorage.Images.Media.ID)); 

 3.獲得ID之后,然后將其轉(zhuǎn)換為uri

 
 
 
 
  1. Uri uri = Uri.appendEncodedPathToUri(AVStorage.Images.Media.EXTERNAL_DATA_ABILITY_URI,""+mediaId); 

4.得到uri之后,然后使用uri生成Pixmap

4.1 先將得到的uri使用openFile的API得到FileDescriptor對象

4.2 使用上一步的對象作為參數(shù)新建一個ImageSource對象和這個對象之下的DecodingOptions對象

4.3 然后調(diào)用上一步建好的ImageSource對象的createThumbnailPixelmap方法生成Pixmap

 
 
 
 
  1. FileDescriptor filedesc = helper.openFile(uri,"r"); 
  2.  
  3. ImageSource.DecodingOptions decodingOpts = new ImageSource.DecodingOption(); 
  4.  
  5. decodingOpts.desiredSize = new Size(300,300); 
  6.  
  7. ImageSource imageSource = ImageSource.create(filedesc,null); 
  8.  
  9. PixelMap pixelMap = imageSource.createThumbnailPixelmap(decodingOpts,true); 

 5.得到Pixmap之后,使用Image來渲染其Pixmap

無論使用何種手段得到一個Image對象,然后調(diào)用它的setPixelMap將上一步得到的Pixmap作為參數(shù)傳進去就OK了。至于別的都是一些對Image其他屬性的設(shè)置。

 
 
 
 
  1. Image img = (Image)findComponentById(ResourceTable.Id_image1); 
  2.  
  3. img.setId(mediaId); 
  4.  
  5. img.setHeight(300); 
  6.  
  7. img.setWidth(300); 
  8.  
  9. img.setMarginTop(20); 
  10.  
  11. img.setMarginLeft(20); 
  12.  
  13. img.setPixelMap(pixelMap); 
  14.  
  15. img.setScaleMode(Image.ScaleMode.ZOOM_CENTER); 

 由于時間比較急,所以這個demo比較簡單,只可以顯示一張圖片,下周我應(yīng)該會在這個demo的基礎(chǔ)上繼續(xù)完善,有興趣的朋友可以關(guān)注一下。

完整demo的源碼見附件

?著作權(quán)歸作者和HarmonyOS技術(shù)社區(qū)共同所有,如需轉(zhuǎn)載,請注明出處,否則將追究法律責任

想了解更多內(nèi)容,請訪問:

和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos./#zz


文章題目:鴻蒙HarmonyOS之獲取系統(tǒng)照片并解碼渲染顯示(附完整Demo)
當前網(wǎng)址:http://www.5511xx.com/article/djeceio.html