用于保存媒体库图片地址
private ArrayList<String> filePath = new ArrayList<String>();
1、查询媒体图库
/**
* 获取到图片地址
*/
private void serchPhoto() {
filePath.clear();
new Thread(new Runnable() {
@Override
public void run() {
String sort= MediaStore.Images.Media.DATE_ADDED+ " desc";
Uri mImageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
ContentResolver mContentResolver = getContentResolver();
// 只查询jpeg和png的图片
Cursor mCursor = mContentResolver.query(mImageUri, null,
MediaStore.Images.Media.MIME_TYPE + "=? or "
+ MediaStore.Images.Media.MIME_TYPE + "=?"
+ " or " + MediaStore.Images.Media.MIME_TYPE
+ "=?", new String[] { "image/jpeg",
"image/png", "image/jpg" },
sort );
Log.e("TAG", mCursor.getCount() + "");
while (mCursor.moveToNext()) {
// 获取图片的路径
String path = mCursor.getString(mCursor
.getColumnIndex(MediaStore.Images.Media.DATA));
if(!path.startsWith("/system")){
filePath.add(path);
}
}
mCursor.close();
Message msg = Message.obtain();
msg.what = 0x110;
handler.sendMessage(msg);
}
}).start();
}
2、发送handler跳转
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
if (msg.what == 0x110) {
skipPhoto();
}
}
};
protected void skipPhoto() {
Intent intent = new Intent(this, SelectPicActivity.class);
intent.putStringArrayListExtra("path", filePath);
startActivity(intent);
}
3、拍照后刷新媒体库
String picFileFullName = "图片存储地址";
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,Uri.fromFile(new File(picFileFullName))));
自备重写相册之用,有了图片地址的万能操作。