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,则需手动指定拍照后存储照片的Uriif (uri == null) {if (photoUri != null) {uri = photoUri;}}//接下来就可以通过image的setImageURI方法放到你的页面上了。imageview.setImageURI(uri);//也可以通过uri获取bitmap对象设置,但这是就可能出现oom,所以得压缩处理后再设置,很简单我就不写了

更多相关文章

  1. Android设置颜色的几种方法
  2. 图片自适应imageView属性
  3. Android 用网络图片做帧动画
  4. Android: 上传图片到服务器
  5. android系统本身的图片资源
  6. Android 给TextView 添加图片(左右等)
  7. Android SDK更新 Connection to http://dl-ssl.google.com refus
  8. android通过http上传图片
  9. android 图片画画板

随机推荐

  1. Android高手进阶教程(八)之----Android(
  2. android 传感器获取方向总结
  3. Android中应用调用系统权限
  4. vue3 父子组件传值详解
  5. 详解React 和 Redux的关系
  6. js-基础(五)classList对象、blur事件进行表
  7. Vue之Axios异步通信详解
  8. 属性重载与命名空间和类自动加载器
  9. kubeadm安装k8s 1.23.5
  10. 面向对象编程学习小结(一)