android拍照获取图片

1.就自己研究写一下android拍照获取图片,自己主要试了两种方法

  1).当不指定图片保存路径时。系统返回的时缩略图。

 

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePictureIntent, 2);

     可通过下面得到bitmap,从而设置图片。

     

if (data != null) {
// 返回有缩略图,不清晰
if (data.hasExtra("data")) {
Bitmap thumbnail = data.getParcelableExtra("data");
imageview.setImageBitmap(thumbnail);
}
    }

  2).当指定图片保存路径时,需要指定一个uri路径,下面两种指定方式。

    <1>.使用contentValues指定uri

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
SimpleDateFormat timeStampFormat = new SimpleDateFormat(
"yyyyMMdd_HHmmss");
String filename = timeStampFormat.format(new Date());
ContentValues values = new ContentValues();
values.put(Media.TITLE, filename);
photoUri = getContentResolver().insert(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
values);
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(intent, 2);

  <2>.创建file指定uri

// 指定存放拍摄照片的位置
File f = createImageFile();//sd卡创建文件文件,可自己写个方法,很简单这里我//就不写了
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
startActivityForResult(intent, 2);

 

 

 

这样在拍照返回结果中就可以通过data获取图片uri了。如下:

if (resultCode == Activity.RESULT_OK) {
Uri uri = null;
if (data != null && data.getData() != null) {
uri = data.getData();
}
// 大部分手机可能无法从getData中获取uri,则需手动指定拍照后存储照片的Uri
if (uri == null) {
if (photoUri != null) {
uri = photoUri;
}
}
//接下来就可以通过image的setImageURI方法放到你的页面上了。
imageview.setImageURI(uri);//也可以通过uri获取bitmap对象设置,但这是就可能出现oom,所以得压缩处理后再设置,很简单我就不写了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值