我是靠谱客的博主 彪壮帅哥,最近开发中收集的这篇文章主要介绍ContentProvider之通过ContentResolver获取图像、视频、音频举例,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
MediaStore中定义了一系列的数据表格,通过ContentResolver提供的查询接口,我们可以得到各种需要的媒体信息。通过以下两个URI可以扫描设备外部和内部的媒体文件。Android系统提供了MediaProvider,MediaStore,MediaScanner接口,通过Content Provider的方式提供给用户。以下是一个简单的例子:(注意,项目使用AndroidAnnotation框架)
package com.example.testaa;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.Click;
import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.ViewById;
import android.app.Activity;
import android.database.Cursor;
import android.net.Uri;
import android.provider.MediaStore;
import android.widget.Button;
import android.widget.TextView;
/*
*@author: ZhengHaibo
*web:
http://blog.csdn.net/nuptboyzhb
*mail:
zhb931706659@126.com
*2014-4-15
Nanjing,njupt,China
*/
@EActivity(R.layout.activity_main)
public class MainActivity extends Activity {
@ViewById
Button getImage;
@ViewById
Button getVideo;
@ViewById
Button getAudio;
@ViewById
TextView myTextView;
/**
* 加载完View之后进行的处理
*/
@AfterViews
void afterViewProcess() {
}
/**
* 获取图像列表
*/
@Click
void getImage() {
String[] projection = { MediaStore.Images.Media._ID,
MediaStore.Images.Media.DISPLAY_NAME,
MediaStore.Images.Media.DATA };
String orderBy = MediaStore.Images.Media.DISPLAY_NAME;
Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
getContentProvider(uri,projection, orderBy);
}
/**
* 获取视频列表
*/
@Click
void getVideo() {
// TODO Auto-generated method stub
String []projection = { MediaStore.Video.Media._ID,
MediaStore.Video.Media.DISPLAY_NAME,
MediaStore.Video.Media.DATA};
String orderBy = MediaStore.Video.Media.DISPLAY_NAME;
Uri uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
getContentProvider(uri,projection, orderBy);
}
/**
* 获取音频列表
*/
@Click
void getAudio() {
String []projection = { MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.DISPLAY_NAME,
MediaStore.Audio.Media.DATA,
MediaStore.Audio.Media.SIZE};
String orderBy = MediaStore.Audio.Media.DISPLAY_NAME;
Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
getContentProvider(uri,projection, orderBy);
}
/**
* 获取ContentProvider
* @param projection
* @param orderBy
*/
public void getContentProvider(Uri uri,String[] projection, String orderBy) {
// TODO Auto-generated method stub
List<HashMap<String, String>> listImage = new ArrayList<HashMap<String, String>>();
Cursor cursor = getContentResolver().query(uri, projection, null,
null, orderBy);
if (null == cursor) {
return;
}
while (cursor.moveToNext()) {
HashMap<String, String> map = new HashMap<String, String>();
for(int i=0;i<projection.length;i++){
map.put(projection[i], cursor.getString(i));
System.out.println(projection[i]+":"+cursor.getString(i));
}
listImage.add(map);
}
myTextView.setText(listImage.toString());
}
}
项目下载地址: http://download.csdn.net/detail/nuptboyzhb/7220227
扩展阅读:
【1】http://blog.csdn.net/gaomatrix/article/details/6216880
【2】http://developer.android.com/reference/android/content/ContentProvider.html
最后
以上就是彪壮帅哥为你收集整理的ContentProvider之通过ContentResolver获取图像、视频、音频举例的全部内容,希望文章能够帮你解决ContentProvider之通过ContentResolver获取图像、视频、音频举例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复