色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

    文章

    34417

    瀏覽量

    251538
  • 操作系統
    +關注

    關注

    37

    文章

    6808

    瀏覽量

    123291
  • 鴻蒙系統
    +關注

    關注

    183

    文章

    2634

    瀏覽量

    66309
  • HarmonyOS
    +關注

    關注

    79

    文章

    1974

    瀏覽量

    30149

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

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

收藏 人收藏

    評論

    相關推薦

    開源鴻蒙系統外設指紋儀模塊功能演示#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 ?423次閱讀

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

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

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

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

    鴻蒙系統三防平板怎么樣

    鴻蒙系統三防平板是一款功能強大、性能卓越的平板電腦,其獨特的三防設計使其成為各種惡劣環境下的理想選擇。無論是戶外探險、工地作業還是軍事應用,鴻蒙系統三防平板都能為用戶提供穩定、可靠的性
    發表于 04-12 14:26

    純血鴻蒙系統,拿什么與安卓、iOS比?

    鴻蒙系統的出現就是來打破這種僵局的,華為鴻蒙是以生態系統為基本而產生的獨立系統。如果與Android、iOS
    發表于 02-21 21:04

    鴻蒙系統優缺點,能否作為開發者選擇

    凡是都有對立面,就直接說說鴻蒙的優缺點吧。 鴻蒙的缺點: 鴻蒙是從2019年開始做出來的,那時候是套殼Android大家都知曉。從而導致大家不看鴻蒙
    發表于 02-16 21:00

    華為鴻蒙系統怎么樣 華為鴻蒙系統和安卓系統的區別

    華為鴻蒙系統是華為公司自主研發的全場景分布式操作系統,于2019年8月首次發布。鴻蒙系統不同于傳統的操作
    的頭像 發表于 02-02 14:54 ?1712次閱讀

    emui10怎么升級鴻蒙系統

    鴻蒙系統是華為開發的新一代操作系統,而EMUI 10則是基于Android的用戶界面。目前,華為尚未公開說明如何在EMUI 10設備上升級到鴻蒙系統
    的頭像 發表于 02-02 11:31 ?2397次閱讀

    如何在鴻蒙系統上安裝Google Play

    隨著鴻蒙(HarmonyOS)系統的逐漸普及和用戶基數的增加,一些用戶希望能在鴻蒙系統上使用Google Play商店以獲取更多應用。然而,由于鴻蒙
    的頭像 發表于 01-31 17:13 ?1.6w次閱讀

    多家頭部企業宣布「啟動鴻蒙原生應用開發」,你看好鴻蒙系統走向「獨立」嗎?

    鴻蒙生態迎「關鍵一戰」,多家頭部企業宣布「啟動鴻蒙原生應用開發」,你看好鴻蒙系統走向「獨立」嗎?
    的頭像 發表于 01-24 11:47 ?562次閱讀
    多家頭部企業宣布「啟動<b class='flag-5'>鴻蒙</b>原生應用開發」,你看好<b class='flag-5'>鴻蒙</b><b class='flag-5'>系統</b>走向「獨立」嗎?

    鴻蒙系統和安卓的區別 鴻蒙系統有什么特別之處

    鴻蒙系統是華為公司自主研發的一款全新操作系統,旨在替代安卓系統鴻蒙系統與安卓
    的頭像 發表于 01-18 11:45 ?1.2w次閱讀

    鴻蒙系統和安卓的區別哪個好用

    鴻蒙系統和安卓系統是目前市場上兩個比較流行的手機操作系統,它們在很多方面都有所不同。本文將從多個方面比較鴻蒙
    的頭像 發表于 01-11 11:15 ?1934次閱讀
    主站蜘蛛池模板: 挤奶门事件完整照片| 中文字幕成人| 青青青青草原国产免费| 精品无人区麻豆乱码无限制| 国产白丝精品爽爽久久久久久蜜臀 | 在线观看日本污污ww网站| 香蕉在线播放| 受喷汁红肿抽搐磨NP双性| 青青草原伊人网| 嫩B人妻精品一区二区三区| 老女人与小伙子露脸对白| 久久xxxx| 久久精品国产亚洲AV天美18| 精品国产成a人在线观看| 国语自产二区高清国语自产拍| 国产成人一区二区三中文| 国产 亚洲 另类 欧美 在线| 成人国产免费| 大地影院免费观看视频| 第一次处破女18分钟免费| 高h全肉图| 国产成人无码精品久久久影院| 风车动漫(p)_在线观看官网| 敌伦小芳的第一次| 国产成人v视频在线观看| 国产精品久久久久久久久爆乳 | 亚洲 欧美 中文 日韩 另类| 午夜看片福利在线观看| 性饥渴姓交HDSEX| 亚洲精品自在线拍2019| 亚洲在线国产日韩欧美| 在线高清视频不卡无码| 91麻豆久久| caoporn 超碰在线视频| 成人免费网址在线| 国产成人高清视频| 国家产午夜精品无人区| 久久香蕉电影| 欧美亚洲高清国产| 手机毛片在线| 亚洲精品无夜久久久久久久久|