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

来源:互联网 发布:天堂伞淘宝官方旗舰店 编辑:程序博客网 时间:2024/05/18 03:02
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);        }    }


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


0 1