Android 多媒体之MediaStore
来源:互联网 发布:linux init3 编辑:程序博客网 时间:2024/05/17 06:16
概述
MediaStore
是android
系统提供的一个多媒体数据库,专门用于存放多媒体信息的,通过ContentResolver
即可对数据库进行操作。如下是其结构:
结构图解:
MediaStore.Files: 共享的文件,包括多媒体和非多媒体信息MediaStore.Audio: 存放音频信息MediaStore.Image: 存放图片信息MediaStore.Vedio: 存放视频信息
每个内部类中都又包含了Media
,Thumbnails
和相应的MediaColumns
,分别提供了媒体信息,缩略信息和 操作字段。
使用
都是通过 ContentResolver
和 Cursor
来操作的,比如查询图片:
//获取cursorCursor cursor = this.getContentResolver().query( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, // URI,可以有多种形式 null, null, null, null);//图片路径所在列的索引int indexPhotoPath = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);while (cursor.moveToNext()) { //打印图片的路径 Log.i("uri:", cursor.getString(indexPhotoPath));}cursor.close();
参数解析:
public final Cursor query(Uri uri, //数据资源路径String[] projection, //查询的列String selection, //查询的条件String[] selectionArgs, //条件填充值String sortOrder){} //排序依据
数据库字段
MediaStore
提供了所有数据库中的字段 宏定义
,操作起来十分方便。
比如:
INTERNAL_CONTENT_URI; //内部库URIEXTERNAL_CONTENT_URI;//外部库URICONTENT_TYPE;//内容提供者类型DEFAULT_SORT_ORDER;//排序方式
有些URI
系统并没有提供,但是提供了相关方法,比如,操作文件的URI写法
MediaStore.Files.getContentUri("external");Uri.parse("content://media/external/files");//和上面的写法等价
更多用法参考: 关于MediaStore.Files
android 多媒体数据库详解
结合LoaderManager
一般,我们都是实现 LoaderManager.LoaderCallbacks<Cursor>
接口,
public Loader<Cursor> onCreateLoader(int id, Bundle args) {}public void onLoadFinished(Loader<Cursor> loader, Cursor data) {}public void onLoaderReset(Loader<Cursor> loader) {}
通过 参数 Cursor data
来遍历 获取相关信息,更多用法参考:Android获取MediaStore的所有照片
Android加载器LoaderManager.loaderCallbacks
扩展阅读
更多关于 MediaStore
的源码分析,参考系列文章:
Android-源码分析之MediaScanner[1]
简化MediaStore
操作的第三方库:
MediaFacade
0 0
- Android 多媒体之MediaStore
- android 多媒体之 MediaStore 学习记录
- Android多媒体MediaStore运用
- Android多媒体MediaStore运用
- Android多媒体MediaStore运用
- 认识Android 多媒体数据库MediaStore
- Android系统多媒体数据库MediaStore
- Android多媒体分析(二)MediaStore
- Android多媒体分析(二)MediaStore
- Android多媒体分析(二)MediaStore
- Android多媒体分析(二)MediaStore
- Android多媒体分析(二)MediaStore
- Android多媒体分析(二)MediaStore
- Android多媒体分析(二)MediaStore
- Android多媒体分析(二)MediaStore
- Android多媒体分析(二)MediaStore
- Android多媒体分析(二)MediaStore
- Android教程之MediaStore
- Java设计模式之单例模式(Singleton Pattern)
- 河南工业大学2017“玲珑杯”程序设计竞赛 08
- 进一步匹配(寻找源图与目标图像之间的透视变换)
- 0416-css盒子模型
- Linux 内核 总结
- Android 多媒体之MediaStore
- 《你不知道的JavaScript》读书笔记(一):变量的声明和变量提升
- [BZOJ1046][HAOI2007]上升序列(dp+贪心)
- TCP/IP
- CSS实现居中
- Android 透明应用
- 【IOI2001】Mobile phones(二维树状数组)
- centos-7 部署hadoop2.5.1 >>>> 分布式 HDFS(三)
- 机器学习实战第四章朴素贝叶斯算法照葫芦画瓢算法实践