日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android查询所有照片,Android查询外部存储中所有照片

發布時間:2024/7/5 Android 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android查询所有照片,Android查询外部存储中所有照片 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近寫了個自定義相冊模塊,其中比較核心的算是查詢照片了,直接上代碼吧

val contentUri = MediaStore.Files.getContentUri("external")

val sortOrder = MediaStore.Files.FileColumns.DATE_MODIFIED + " DESC"

val selection =

"(${MediaStore.Files.FileColumns.MEDIA_TYPE} = ? OR ${MediaStore.Files.FileColumns.MEDIA_TYPE} = ?) AND ${MediaStore.MediaColumns.SIZE} > 0"

val selectionAllArgs = arrayOf(MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE.toString())

val projections = arrayOf(

MediaStore.Files.FileColumns._ID,

MediaStore.MediaColumns.DATA, MediaStore.MediaColumns.DISPLAY_NAME,

MediaStore.MediaColumns.DATE_MODIFIED, MediaStore.MediaColumns.MIME_TYPE,

MediaStore.MediaColumns.WIDTH, MediaStore.MediaColumns.HEIGHT,

MediaStore.MediaColumns.SIZE, MediaStore.Video.Media.DURATION

)

val cursor = context.contentResolver.query(contentUri, projections, selection, selectionAllArgs, sortOrder) ?: return

if (cursor.moveToFirst()) {

val idCol = cursor.getColumnIndex(MediaStore.MediaColumns._ID)

val pathCol = cursor.getColumnIndex(MediaStore.MediaColumns.DATA)

val nameCol = cursor.getColumnIndex(MediaStore.MediaColumns.DISPLAY_NAME)

val mimeType = cursor.getColumnIndex(MediaStore.MediaColumns.MIME_TYPE)

do {

val id = cursor.getString(idCol)

//這里得到path其實就可以利用glide來顯示照片了,但還是建議用uri

val path = cursor.getString(pathCol)

val name = cursor.getString(nameCol)

val type = cursor.getString(mimeType)

//過濾gif

if (name.endsWith(".gif", true)) {

continue

}

//過濾視頻

if (type.contains("video")) {

continue

}

val file = File(path)

if (!file.exists() || !file.isFile) {

continue

}

//這里拿到uri

val uri = Uri.withAppendedPath(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, id)

//這里可以對照片進行分類操作,

...

} while (cursor.moveToNext())

}

cursor.close()

數據庫查詢要放到工作線程處理,而且別忘了申請外部存儲讀寫權限

總結

以上是生活随笔為你收集整理的android查询所有照片,Android查询外部存储中所有照片的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。