91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙系統訪問系統相冊方法

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

掃碼添加小助手

加入工程師交流群

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

鴻蒙的 AVStorage 對應的是 Android 中的 MediaStore,都是用于操作系統媒體數據庫的類。

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

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

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

try {

//設置保存參數到ContentValues中

val contentValues = ContentValues()

//設置文件名

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

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

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

//DCIM是系統文件夾,關于系統文件夾可以到系統自帶的文件管理器中查看,不可以寫沒存在的名字

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

//設置文件類型

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

//執行insert操作,向系統文件夾中添加文件

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

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

if (uri != null) {

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

//使用流將內容寫入該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)

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

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

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

首先,讀取系統相冊需要獲取 ohos.permission.READ_USER_STORAGE 權限,我們需要在 config.json 中加入如下代碼:

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

并且,該權限需要動態申請,我們需要在 ability 中手動申請權限:

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

requestPermissionsFromUser(permissions, 0);

獲取到權限之后,我們就可以通過 DataAbilityHelper 和 AVStorage 來查詢媒體數據庫了。

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

private void showImage() {

DataAbilityHelper helper = DataAbilityHelper.creator(this);

try {

// columns為null,查詢記錄所有字段,當前例子表示查詢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 來模仿圖庫界面展示獲取到的系統相冊圖片:

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

tableLayout.setColumnCount(4);

showImage();

至此,我們就獲取到了系統相冊目錄下的圖片。責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 華為
    +關注

    關注

    216

    文章

    35212

    瀏覽量

    255911
  • 操作系統
    +關注

    關注

    37

    文章

    7152

    瀏覽量

    125591
  • 鴻蒙系統
    +關注

    關注

    183

    文章

    2642

    瀏覽量

    68106
  • HarmonyOS
    +關注

    關注

    80

    文章

    2126

    瀏覽量

    33067

原文標題:如何獲取鴻蒙系統相冊圖片?

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    HarmonyOS實戰:一招搞定保存圖片到相冊

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

    國產操作系統加速崛起——鴻蒙電腦補齊鴻蒙生態最重要拼圖

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

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

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

    “RdbStore”上線開源鴻蒙社區 助力鴻蒙應用數據訪問效率大幅提升

    、品質調優、全鏈路運維等,能夠有效提升應用啟動和訪問速度,助力應用高效開發和性能提升。 性能強大:數據訪問和初始化耗時大幅優化 在應用開發過程中,數據訪問的效率直接影響應用的啟動和訪問
    的頭像 發表于 03-18 15:02 ?341次閱讀

    【「鴻蒙操作系統設計原理與架構」閱讀體驗】01-初始華為鴻蒙

    非常有幸能夠獲得發燒友的華為鴻蒙系統書籍的閱讀資格,自己從事嵌入式軟件多年,但是對于操作系統的了解還是比較少的,一直從事MCU的部分開發任務,近兩年隨著中美關系的緊張化,國產化的操作系統
    發表于 01-25 11:05

    華為新品出廠默認搭載原生鴻蒙系統

    華為近日宣布了一項重要決策,即2025年其手機、平板、穿戴等新品都將出廠默認搭載原生鴻蒙操作系統。這一舉措標志著華為在操作系統領域邁出了堅實的一步,也彰顯了其對自主技術的堅定信心和決心。 據了解
    的頭像 發表于 01-03 10:48 ?972次閱讀

    開源鴻蒙系統外設指紋儀模塊功能演示#OpenHarmony

    鴻蒙系統
    深圳市視美泰技術股份有限公司
    發布于 :2024年12月17日 10:45:58

    開源鴻蒙系統外設身份證模塊讀取信息演示 #OpenHarmony

    鴻蒙系統
    深圳市視美泰技術股份有限公司
    發布于 :2024年12月17日 10:45:11

    名單公布!【書籍評測活動NO.53】鴻蒙操作系統設計原理與架構

    積累的AI能力和鴻蒙原生應用生態相結合,帶來了全新的 鴻蒙原生智能(Harmony Intelligence) 。 HarmonyOS NEXT首次將AI能力融入系統,賦能生態。 HarmonyOS
    發表于 12-16 15:10

    鴻蒙系統專用版微信內測即將啟動

    近日,有知情人士稱鴻蒙系統專用版微信的開發工作現已基本完成。這一消息標志著微信在適配鴻蒙系統方面取得了重要進展,為鴻蒙
    的頭像 發表于 11-07 10:58 ?1504次閱讀

    原生鴻蒙操作系統正式發布,誠邁科技與華為一起共建鴻蒙新世界

    10月22日,我國首個國產移動操作系統——華為原生鴻蒙操作系統正式發布,這也是繼蘋果iOS和安卓系統后,全球第三大移動操作系統。此次發布的原
    的頭像 發表于 10-28 09:29 ?1439次閱讀
    原生<b class='flag-5'>鴻蒙</b>操作<b class='flag-5'>系統</b>正式發布,誠邁科技與華為一起共建<b class='flag-5'>鴻蒙</b>新世界

    華為鴻蒙系統正式發布,華鼎冷鏈科技攜手共筑國產OS生態

    華為鴻蒙系統刷屏了!10月22日, 華為正式發布原生鴻蒙操作系統HarmonyOS NEXT,成為與蘋果iOS系統和谷歌安卓
    的頭像 發表于 10-25 11:43 ?875次閱讀
    華為<b class='flag-5'>鴻蒙</b><b class='flag-5'>系統</b>正式發布,華鼎冷鏈科技攜手共筑國產OS生態

    華為原生鴻蒙操作系統正式發布

    10月22日晚,華為舉行了一場盛大的發布會,正式推出了其原生鴻蒙操作系統HarmonyOS NEXT,也被稱為鴻蒙5.0。這一發布標志著鴻蒙系統
    的頭像 發表于 10-23 16:52 ?1188次閱讀

    瑞芯微RK3568鴻蒙開發板OpenHarmony系統修改cfg文件權限方法

    本文適用于OpenHarmony開源鴻蒙系統修改cfg文件權限方法,深圳觸覺智能研發的RK3566、RK3568、RK3588等開發板、主板等產品均適用此教程
    的頭像 發表于 09-11 13:26 ?1930次閱讀
    瑞芯微RK3568<b class='flag-5'>鴻蒙</b>開發板OpenHarmony<b class='flag-5'>系統</b>修改cfg文件權限<b class='flag-5'>方法</b>

    蜂鳥2K300怎樣裝鴻蒙系統

    蜂鳥2K300怎樣裝鴻蒙系統
    發表于 09-06 15:22
    主站蜘蛛池模板: 天天爱综合网 | 亚洲xx网站| www.色噜噜| 亚洲国产日韩女人aaaaaa毛片在线 | 亚洲国产成人久久精品图片 | 天天色天天色 | 免费我看视频在线观看 | 午夜色婷婷 | 久久草在线观看 | 欧美日韩高清性色生活片 | 4438x成人网最大色成网站 | 黄色片日本网站 | www淫 | 久久久噜噜噜久久久 | 爆操极品美女 | gogo亚洲肉体艺术100 | 天天干夜夜添 | 日韩欧美中文字幕在线视频 | 亚洲综合久久综合激情久久 | 热re99久久精品国产99热 | 人人爱人人插 | 亚洲成人资源 | 免费性bbbb台湾 | 色内内免费视频播放 | 三级精品视频在线播放 | 一区二区三区四区在线观看视频 | 午夜国产理论 | 加勒比色 | 首页 亚洲 欧美 制服 丝腿 | 欧美人与zoxxxx | 伊人色综合久久天天爱 | 天堂种子 | 人人艹在线 | 欧美草比 | 成人国产亚洲欧美成人综合网 | 四虎在线影院 | 欧美色爱综合网 | 婷婷色在线观看 | аⅴ资源天堂8在线 | 日本黄色片在线观看 | 亚洲 欧美 自拍 卡通 综合 |