91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙系統(tǒng)訪問系統(tǒng)相冊方法

OpenHarmony技術(shù)社區(qū) ? 來源:鴻蒙技術(shù)社區(qū) ? 作者:拓維云創(chuàng)易乘民 ? 2021-08-26 17:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前幾天有朋友問我如何通過 AVStorage 來獲取鴻蒙系統(tǒng)相冊的圖片,這個操作在我們平時開發(fā)時也經(jīng)常用到,今天就分享一下鴻蒙系統(tǒng)訪問系統(tǒng)相冊的方法。

鴻蒙的 AVStorage 對應(yīng)的是 Android 中的 MediaStore,都是用于操作系統(tǒng)媒體數(shù)據(jù)庫的類。

但是現(xiàn)在開放的功能不如 MediaStore 強大,很多操作需要用的字段還找不到。

這里我先通過一段安卓程序往系統(tǒng)相冊目錄中寫入三張圖片,并插入媒體數(shù)據(jù)庫:

//將文件保存到公共的媒體文件夾//這里的filename單純的指文件名,不包含路徑@RequiresApi(Build.VERSION_CODES.Q)fun saveImage(fileName: String, bitmap: Bitmap) {

try {

//設(shè)置保存參數(shù)到ContentValues中

val contentValues = ContentValues()

//設(shè)置文件名

contentValues.put(MediaStore.Images.Media.DISPLAY_NAME, fileName)

//android Q中不再使用DATA字段,而用RELATIVE_PATH代替

//RELATIVE_PATH是相對路徑不是絕對路徑

//DCIM是系統(tǒng)文件夾,關(guān)于系統(tǒng)文件夾可以到系統(tǒng)自帶的文件管理器中查看,不可以寫沒存在的名字

contentValues.put(MediaStore.Images.Media.RELATIVE_PATH, “DCIM/”);

//設(shè)置文件類型

contentValues.put(MediaStore.Images.Media.MIME_TYPE, “image/JPEG”)

//執(zhí)行insert操作,向系統(tǒng)文件夾中添加文件

//EXTERNAL_CONTENT_URI代表外部存儲器,該值不變

val uri = contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues)

if (uri != null) {

//若生成了uri,則表示該文件添加成功

//使用流將內(nèi)容寫入該uri中即可

val outputStream: OutputStream? = contentResolver.openOutputStream(uri)

if (outputStream != null) {

bitmap.compress(Bitmap.CompressFormat.JPEG, 90, outputStream)

outputStream.flush()

outputStream.close()

}

}

} catch (e: Exception) {

e.printStackTrace()

}

}

val bitmap = resources.getDrawable(R.mipmap.ic_launcher, null).toBitmap()

saveImage(“test”, bitmap)

這里我是放在點擊事件回調(diào)中,點擊三次,插入了三張同樣的圖片,該方法會自動給重復(fù)的圖片重命名。

通過 AS 的文件管理器和系統(tǒng)的圖庫我們可以看到已經(jīng)寫入成功了,接下來再用系統(tǒng)相機拍兩張照片,以創(chuàng)建不同來源的媒體圖片,同樣可在文件管理器和圖庫中查看結(jié)果。

這樣,數(shù)據(jù)就做好了,接下來,我們通過鴻蒙提供的 API 來獲取系統(tǒng)相冊的圖片并顯示出來。

首先,讀取系統(tǒng)相冊需要獲取 ohos.permission.READ_USER_STORAGE 權(quán)限,我們需要在 config.json 中加入如下代碼:

“reqPermissions”: [{“name”: “ohos.permission.READ_USER_STORAGE”}]

并且,該權(quán)限需要動態(tài)申請,我們需要在 ability 中手動申請權(quán)限:

String[] permissions = {“ohos.permission.READ_USER_STORAGE”};

requestPermissionsFromUser(permissions, 0);

獲取到權(quán)限之后,我們就可以通過 DataAbilityHelper 和 AVStorage 來查詢媒體數(shù)據(jù)庫了。

獲取媒體外部存儲中的圖片 URI 需要使用的預(yù)定義字段是:AVStorage.Images.Media.EXTERNAL_DATA_ABILITY_URI:

private void showImage() {

DataAbilityHelper helper = DataAbilityHelper.creator(this);

try {

// columns為null,查詢記錄所有字段,當(dāng)前例子表示查詢id字段

ResultSet resultSet = helper.query(AVStorage.Images.Media.EXTERNAL_DATA_ABILITY_URI, new String[]{AVStorage.Images.Media.ID}, null);

while (resultSet != null && resultSet.goToNextRow()) {

PixelMap pixelMap = null;

ImageSource imageSource = null;

Image image = new Image(this);

image.setWidth(250);

image.setHeight(250);

image.setMarginsLeftAndRight(10, 10);

image.setMarginsTopAndBottom(10, 10);

image.setScaleMode(Image.ScaleMode.CLIP_CENTER);

// 獲取id字段的值

int id = resultSet.getInt(resultSet.getColumnIndexForName(AVStorage.Images.Media.ID));

Uri uri = Uri.appendEncodedPathToUri(AVStorage.Images.Media.EXTERNAL_DATA_ABILITY_URI, String.valueOf(id));

FileDescriptor fd = helper.openFile(uri, “r”);

try {

imageSource = ImageSource.create(fd, null);

pixelMap = imageSource.createPixelmap(null);

} catch (Exception e) {

e.printStackTrace();

} finally {

if (imageSource != null) {

imageSource.release();

}

}

image.setPixelMap(pixelMap);

tableLayout.addComponent(image);

}

} catch (DataAbilityRemoteException | FileNotFoundException e) {

e.printStackTrace();

}

}

我們通過一個 TableLayout 來模仿圖庫界面展示獲取到的系統(tǒng)相冊圖片:

tableLayout = (TableLayout) findComponentById(ResourceTable.Id_table);

tableLayout.setColumnCount(4);

showImage();

至此,我們就獲取到了系統(tǒng)相冊目錄下的圖片。責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 華為
    +關(guān)注

    關(guān)注

    218

    文章

    36040

    瀏覽量

    262195
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7402

    瀏覽量

    129364
  • 鴻蒙系統(tǒng)
    +關(guān)注

    關(guān)注

    183

    文章

    2642

    瀏覽量

    69885
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2154

    瀏覽量

    36086

原文標(biāo)題:如何獲取鴻蒙系統(tǒng)相冊圖片?

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    鴻蒙手機系統(tǒng)6.0用瀏覽器看視頻,視頻顯示不能橫屏。怎么設(shè)置?

    鴻蒙手機系統(tǒng)6.0用瀏覽器看視頻,視頻顯示不能橫屏。怎么設(shè)置? 如何掂讓這個豎屏切換為橫屏?
    發(fā)表于 12-20 20:10

    鴻蒙系統(tǒng)對手機市場會產(chǎn)生怎樣的影響?現(xiàn)在汽車是不是也用上鴻蒙系統(tǒng)了?

    鴻蒙系統(tǒng)對手機市場會產(chǎn)生怎樣的影響?現(xiàn)在汽車是不是也用上鴻蒙系統(tǒng)了?
    發(fā)表于 12-04 20:47

    基于開源鴻蒙的圖片編輯開發(fā)樣例(1)

    本期內(nèi)容介紹基于開源鴻蒙在RK3568上開發(fā)圖片編輯樣例的全流程,分為上篇和下篇,本篇為上篇,主要介紹添加相冊圖片、編譯圖片功能。
    的頭像 發(fā)表于 10-31 09:16 ?3076次閱讀
    基于開源<b class='flag-5'>鴻蒙</b>的圖片編輯開發(fā)樣例(1)

    鴻蒙6.0系統(tǒng)星閃藍(lán)牙入口合并

    有數(shù)碼博主爆料稱在華為鴻蒙 HarmonyOS 6.0 系統(tǒng) Beta3 版本的部分場景操作視頻中可以看到,星閃和藍(lán)牙的功能入口和功能頁面已經(jīng)合并。 ?
    的頭像 發(fā)表于 09-01 16:59 ?973次閱讀

    HarmonyOS實戰(zhàn):一招搞定保存圖片到相冊

    保存圖片功能幾乎是每個應(yīng)用程序必備的功能之一,當(dāng)用戶遇到喜歡的圖片時可以保存到手機相冊。那么在鴻蒙中保存圖片是否也需要申請用戶存儲權(quán)限以及如何將圖片保存到相冊,本文將詳細(xì)講述怎么保存網(wǎng)絡(luò)圖片,指定布局生成圖片保存至
    的頭像 發(fā)表于 06-24 17:04 ?1274次閱讀

    開源系統(tǒng)適配:聚徽分享國產(chǎn)工控平板在 Linux / 鴻蒙系統(tǒng)下的技術(shù)優(yōu)化

    在工業(yè)自動化與智能化加速推進(jìn)的當(dāng)下,國產(chǎn)工控平板的系統(tǒng)適配成為提升設(shè)備性能與競爭力的關(guān)鍵環(huán)節(jié)。Linux 和鴻蒙作為開源系統(tǒng),憑借其高度的開放性與可定制性,為國產(chǎn)工控平板帶來新的發(fā)展機遇。如何對國產(chǎn)
    的頭像 發(fā)表于 06-13 16:29 ?1089次閱讀

    使用DevEcoStudio 開發(fā)、編譯鴻蒙 NEXT_APP 以及使用中文插件

    的一站式集成開發(fā)環(huán)境(IDE),專為鴻蒙操作系統(tǒng)(HarmonyOS Next)應(yīng)用和服務(wù)開發(fā)設(shè)計 DevEco Studio,掌握基本操作和開發(fā)流程。 ## 2. 安裝與配置 1. 訪問華為開發(fā)者聯(lián)盟
    發(fā)表于 06-11 17:18

    開源鴻蒙操作系統(tǒng)的生態(tài)成果與落地實踐

    電網(wǎng)、中國科學(xué)院軟件研究所、證通電子等合作單位共同支持。本次大會聚焦開源鴻蒙 5.1 Release版本,面向開發(fā)者和伙伴深度展示開源鴻蒙操作系統(tǒng)的生態(tài)成果與落地實踐。
    的頭像 發(fā)表于 06-05 14:27 ?1218次閱讀

    國產(chǎn)操作系統(tǒng)加速崛起——鴻蒙電腦補齊鴻蒙生態(tài)最重要拼圖

    國產(chǎn)操作系統(tǒng)加速崛起——鴻蒙電腦補齊鴻蒙生態(tài)最重要拼圖 5月19日,首次應(yīng)用鴻蒙操作系統(tǒng)的個人電腦(PC)在四川成都正式發(fā)布。這標(biāo)志著我國擁
    的頭像 發(fā)表于 05-21 11:41 ?689次閱讀

    人臉識別身份核驗終端使用鴻蒙系統(tǒng),有什么好處?

    核驗終端的重要因素。而鴻蒙系統(tǒng)HarmonyOS在這些環(huán)節(jié)上得到更大的優(yōu)化。首先,從安全性來說,鴻蒙系統(tǒng)HarmonyOS采用微內(nèi)核設(shè)計,將操作系統(tǒng)
    的頭像 發(fā)表于 05-20 09:57 ?960次閱讀
    人臉識別身份核驗終端使用<b class='flag-5'>鴻蒙</b><b class='flag-5'>系統(tǒng)</b>,有什么好處?

    成都匯陽投資關(guān)于華為鴻蒙PC 操作系統(tǒng)發(fā)布,相關(guān)公司迎來發(fā)展

    鴻蒙電腦(基于HarmonyOS 的華為 PC 系統(tǒng))發(fā)布 鴻蒙 電腦(基于 HarmonyOS 的華為 PC 系 統(tǒng) ) 已于2025年5月19日正式發(fā)布。 鴻蒙電腦在2025年5月
    的頭像 發(fā)表于 05-12 09:39 ?1234次閱讀

    鴻蒙操作系統(tǒng)首登電腦端,華為開啟鴻蒙辦公新時代

    2025年5月8日,華為在深圳舉辦了鴻蒙電腦技術(shù)與生態(tài)溝通會,鴻蒙操作系統(tǒng)首次在電腦端亮相。這既是中國電子信息產(chǎn)業(yè)的歷史性時刻,也是華為鴻蒙辦公的新起點。 五年匠心打磨,
    發(fā)表于 05-08 14:20 ?6081次閱讀
    <b class='flag-5'>鴻蒙</b>操作<b class='flag-5'>系統(tǒng)</b>首登電腦端,華為開啟<b class='flag-5'>鴻蒙</b>辦公新時代

    深度融入“純血鴻蒙”|芯??萍计煜驴佃諳KOK首批入駐鴻蒙NEXT系統(tǒng)

    3月20日,隨著首款全面搭載純血鴻蒙系統(tǒng)的"寬折疊"手機PuraX的發(fā)布,全面鴻蒙時代正悄然到來。鴻蒙NEXT(純血鴻蒙)自正式亮相以來,這
    的頭像 發(fā)表于 03-21 18:04 ?1598次閱讀
    深度融入“純血<b class='flag-5'>鴻蒙</b>”|芯??萍计煜驴佃諳KOK首批入駐<b class='flag-5'>鴻蒙</b>NEXT<b class='flag-5'>系統(tǒng)</b>

    “RdbStore”上線開源鴻蒙社區(qū) 助力鴻蒙應(yīng)用數(shù)據(jù)訪問效率大幅提升

    、品質(zhì)調(diào)優(yōu)、全鏈路運維等,能夠有效提升應(yīng)用啟動和訪問速度,助力應(yīng)用高效開發(fā)和性能提升。 性能強大:數(shù)據(jù)訪問和初始化耗時大幅優(yōu)化 在應(yīng)用開發(fā)過程中,數(shù)據(jù)訪問的效率直接影響應(yīng)用的啟動和訪問
    的頭像 發(fā)表于 03-18 15:02 ?702次閱讀

    【貝啟科技BQ3568HM開源鴻蒙開發(fā)板深度試用報告】系統(tǒng)鏡像編譯和燒錄

    從貝啟開源社區(qū): BQ3568HM開源鴻蒙系統(tǒng)主板資料匯總帖-開源鴻蒙技術(shù)交流-Bearkey-開源社區(qū) ,可以獲取 貝啟科技BQ3568HM開源鴻蒙開發(fā)板 的所有資料。 開源
    發(fā)表于 03-16 10:53