Android调用系统照相机和摄像机

调用系统照相机。

 
 
private void callPhone() {
    //获得文件
    File _file = new File(StorageUtils.getCacheDirectory(this), "temp.jpg");
    //判断文件是否为null
    if (_file != null) {
        //获得图片URI
        Uri _photo_file_uri = Uri.fromFile(_file);
 
 
	//判断相片位置uri是否为null
	if (_photo_file_uri != null) {
    		//开启系统相机
    		Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    		cameraIntent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, 0);
    		cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, _photo_file_uri);
    		startActivityForResult(cameraIntent, Constants.TAKE_PHOTO);
	}
}}
 
 
文件处理
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == Constants.TAKE_PHOTO) {
        //获得临时文件
        Bitmap _bitmap = BitmapFactory.decodeFile(StorageUtils.getCacheDirectory(this) + "/temp.jpg");
        if (_bitmap != null) {
            //将图片保存到系统图库,并返回数据库中指定的路径
            String urlStr = MediaStore.Images.Media.insertImage(getContentResolver(), _bitmap, TimeUtils.getYearMonthDayHMS(), "cbb_photo");
            if (!TextUtils.isEmpty(urlStr)) {
                //发送更新SD卡通知
                MainActivity.this.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse(urlStr)));
            }
        }
    }
    super.onActivityResult(requestCode, resultCode, data);
}
调用系统摄像机
 
 
Intent _video_intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
//保存路径
_video_intent.putExtra(MediaStore.EXTRA_OUTPUT, Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath() + "/Camera/");
//分辨率0最低,1最高
_video_intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY,1);
//开启系统摄像机
startActivityForResult(_video_intent, Constants.CAMERA_TUBE);


猜你喜欢

转载自blog.csdn.net/laowu119119/article/details/62236428