android 调用系统拍照

本文介绍两种Android拍照功能的实现方式:一是直接指定照片保存路径并通过文件获取图片;二是通过返回的bitmap保存到文件中。文章详细阐述了每种方式的具体步骤。

1.点击进入拍照存在设置好后的文件

// 通过uuid生成照片唯一名字
				Settings.PICTURE_TMPURL = UUID.randomUUID().toString() + "image.jpg";
				// 在该路径下构件文件对象
				File tempFile = new File(Settings.TEMP_PATH, Settings.PICTURE_TMPURL);
				Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
				intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(tempFile));
				((Activity) mContext).startActivityForResult(intent, Constants.REQUEST_CODE_CAMERA);
				dismiss();
用这种方式需要在intent中传入拍照后文件存放的位置,在onActivityResult中返回的intent为null,需要自己通过之前设置的文件来获取bitmap

if (arg0 == Constants.REQUEST_CODE_CAMERA && arg1 == Activity.RESULT_OK) {
			// 拍照返回
			
				tempFile = new File(Settings.TEMP_PATH, Settings.PICTURE_TMPURL);
				if (tempFile.exists()) {
					onGetFileListener.AfterGetFile(tempFile);
				}
			
		}

2.点击进入拍照,通过返回的bitmap存入到文件中

 Intent cameraIntent = new Intent( android.provider.MediaStore.ACTION_IMAGE_CAPTURE);  
    startActivityForResult(cameraIntent, CAMERA_REQUEST);  


返回后通过intent里返回的bitmap,然后做相应的处理
   if(requestCode == CAMERA_REQUEST && resultCode == RESULT_OK && data.getExtras().get("data")!=null){  
            if(rsd.getPhoto1URL() != null){  //删除上一张图片信息  
                deleteImgage(rsd.getPhoto1URL());  
            }  
            Bitmap photo = (Bitmap)data.getExtras().get("data");  
            File baseFile = FileHelper.getPicBaseFile();  
            if(baseFile == null){  
                showLongMessage("SD卡不可用,请检查SD卡情况");  
                return;  
            }  
            String fileName = getFileName();   //图片名称  
            rsd.setPhoto1URL(fileName);  
            saveBitmap(photo, fileName, baseFile);  
            imgPhoto.setImageBitmap(photo);  
        }  




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值