1、打开照相机,并将图片存储到 photoUri 路径
Uri photoUri=Uri.fromFile(picFile);
Intent cameraIntent =new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,photoUri);
MediaStore.Images.Media._ID :
/**
* The unique ID for a row.
* Type: INTEGER (long)
*/
public static final String _ID = "_id";
------------------------------------------------------------------------------------------------
本部分摘抄自:android 多媒体数据库详解
Android的多媒体文件主要存储在 /data/data/com.android.providers.media/databases 目录下,该目录下有连个db文件,
album_art 、audio 、search 、album_info 、audio_genres、 searchhelpertitle、albums、 audio_genres_map、 thumbnails、
android_metadata、 audio_meta、 video、artist_info 、audio_playlists 、videothumbnails、artists 、audio_playlists_map、
artists_albums_map 、images
CREATE TABLE images (_id INTEGER PRIMARY KEY, _data TEXT,_size INTEGER,_display_name TEXT,mime_type TEXT,title
TEXT, date_added INTEGER, date_modified INTEGER,description TEXT,picasa_id TEXT,isprivate INTEGER,latitudeDOUBL
E, longitude DOUBLE, datetaken INTEGER, orientation INTEGER, mini_thumb_magic INTEGER, bucket_id TEXT, bucket_display_name TEXT);
Android系统中的每一种媒体文件有两种地址描述方式
第一种模式,在Android中,Content Provider是用来存储和获取公共数据的统一接口,Content Provider为每一类资源分配了URI地址
比如图片的地址就包括 MediaStore.Images.Media.INTERNAL_CONTENT_URI 和 MediaStore.Images.Media.EXTERNAL_CONTENT_URI 两个基础地址,
其值分别是 content://media/internal/images/media 和 content://media/external/images/media ,对应内部库和外部库地址。每一张图片的地址基本上是上面的基础URL地址下加上图片的内部ID。打个比方一张存储卡上的图片ID为2,其对应的Uri地址就是 content://media/external/images/media/2. 知道了这个地址,基本上就可以操作这张图片的所有信息了。基本用法1:从一个Content Uri地址中生成Bitmap
可以采用android.provider.MediaStore.Images.Media.getBitmap(ContentResolvercr,Uriurl)方法,其中ContentResolver是应用与资源之间的衔接人,它的示例通常可以通过在Activity中调用的getContentResolver()方法中获取。Uri地址就是上面描述的content://media/external/images/media/2类似地址,也就是Content Provider定义的地址形式。
基本用法2:从一个传统地址中生成Bitmap
有时候我们只知道一张图片的路径,并不知道图片的内部地址,想去获取该图片,可以采用android.graphics.BitmapFactory中的decodeXXX方法来搞定,比如decodeFile方法就是从文件路径中读取图片,原图片可以支持jpg,png,gif,bmp等各种格式。decodeByteArray就是从字节流中解码了。最后都是转换成Bitmap格式。
基本用法3:获取一张图片的缩略图
有时候我们需要显示图片的缩略图,可以采用android.provider.MediaStore.Images.Thumbnails的getThumbnail方法。另外其实也可以采用bitmap的compress的方法对图片进行一些压缩处理。
------------------------------------------------------------------------------------------------
public static final Cursor query(ContentResolver cr, Uri uri, String[] projection,String selection, String [] selectionArgs, String orderBy)
解析:
Cursor cursor = MediaStore.Images.Media.query( getContentResolver(), MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[]{ MediaStore.Images.Media.DISPLAY_NAME,MediaStore.Images.Media._ID } ,null, MediaStore.Images.Media._ID+" desc ");
参考资料:Android 学习笔记 Contacts (一)ContentResolver query 参数详解
学习参考资料:
android 多媒体数据库详解 :http://blog.csdn.net/fengye810130/article/details/11522741