您的位置:首页 > 移动开发 > Android开发

Android中打开系统相机连续拍多张图片,并得到图片地址

2017-04-27 18:21 771 查看
1、打开系统相机:
Intent intent = new Intent();
intent.putExtra("return-data", false);
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE_SECURE);
startActivityForResult(intent, 100);


2、拍完多张照片回来:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

if (requestCode == 100) {
//            Log.v("tag_2", "" + data);
}
}


3、查询数据库得到最新的一张图片:
public String getLastPhotoPath() {
String photoPath = "";
Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
ContentResolver contentResolver = getContentResolver();
String[] projection = {MediaStore.Images.Media._ID,
MediaStore.Images.Media.DISPLAY_NAME,
MediaStore.Images.Media.DATA};
String selection = MediaStore.Images.Media.MIME_TYPE + "=?";
String[] selectionArgs = {"image/jpeg"};
String sortOrder = MediaStore.Images.Media.DATE_MODIFIED + " desc limit 1";
Cursor cursor = contentResolver.query(uri, projection, selection, selectionArgs, sortOrder);
if (cursor != null) {
cursor.moveToFirst();
do {
photoPath = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
} while (cursor.moveToNext());
cursor.close();
}
return photoPath;
}

4、注册数据库监听:

mContentObserver = new CameraObserver(new Handler());
getContentResolver().registerContentObserver(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, true, mContentObserver);
public class CameraObserver extends ContentObserver {
public CameraObserver(Handler handler) {
super(handler);
}

@Override
public void onChange(boolean selfChange, Uri uri) {
ImageView imageView = (ImageView) findViewById(R.id.image);
String photoPath = getLastPhotoPath();
Picasso.with(MainActivity.this).load(new File(photoPath)).centerCrop().resize(Utils.dip2px(200f), Utils.dip2px(200f)).into(imageView);
}
}


如果你觉得帮到了你,请给作者打赏一口饭吃:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐