在常规应用开发过程中,我们经常会使用到手机的相机功能,通过调用系统相机方便快捷的帮助我们实现拍照功能,本篇我将带领大家实现一下,如何通过调用系统相机实现拍照。

  第一种:调用系统相机拍照,通过返回的照片缩略图展示我们的拍照图片

  打开系统相机:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, TAKE_PICTURE);// 如果用Activity.RESULT_OK,onActivityResult()不会被回调

  处理拍照返回参数:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
// 获取系统默认返回图片(缩略图)
if (requestCode == TAKE_PICTURE) {
Bundle bundle = data.getExtras();
bitmap = (Bitmap) bundle.get("data");
}
// 显示图片
iv.setImageBitmap(bitmap);
}
}

  是不是很简单,不过有一点很不好,那就是返回的图片是缩略图,那么如何获得拍摄的高清图片呢?

  第二种:保存拍照的照片到指定文件,通过文件路径显示拍照照片

private static final int ADD_IMAGE_ONE = ;//拍摄照片返回值
private String path;//拍照后图片保存的路径
private String fileName;//保存文件的文件名
path = Environment.getExternalStorageDirectory() + "/CeShi/Image/";
File file = new File(path);//创建路径
if (!file.exists()) {
  file.mkdirs();
}
fileName = "copyImage.jpg";
File f = new File(path+fileName);
if(!f.exists()){
  try {
    f.createNewFile();//创建文件
  } catch (IOException e1) {
    e1.printStackTrace();
  }
}
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
startActivityForResult(intent, ADD_IMAGE_ONE);

  拍摄完成后数据处理:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK){
  switch (requestCode) {
    case ADD_IMAGE_ONE://拍照照片
//   Toast.makeText(mContext, "拍照完成", Toast.LENGTH_SHORT).show();
iv.setImageBitmap(BitmapFactory.decodeFile(path + fileName));
      break;
    default:
      break;
    }
  }
}

  好了,关于调用系统相机完成照片拍摄的知识,就为总结完毕,希望对大家有所帮助。源码下载:http://pan.baidu.com/s/1sjZMUQx

最新文章

  1. 数据表格 - DataGrid - 查询
  2. Android Studio 出现Failed to open zip file的问题
  3. iOS 快递查询
  4. Xcode7.0.1(ios9)的部分适配问题
  5. Codeforces Gym 100650D Queens, Knights and Pawns 暴力
  6. P次方数 英雄会 csdn 高校俱乐部
  7. 我开启httpd服务的时候 显示Could not reliably determine the server`s fully qualified domain name,
  8. JSON 传值 textarea中虚拟换行功能
  9. [LeetCode] Regular Expression Matching [6]
  10. jquery与js实现全选功能的区别---2017-05-12
  11. app中rem算法
  12. Number 类型
  13. 淘宝联盟api调用笔记
  14. 【原创】数据库基础之Mysql(1)常用命令
  15. 江苏省选2019Round1游记
  16. SpringBoot 2.x 集成QQ邮箱、网易系邮箱、Gmail邮箱发送邮件
  17. Educational Codeforces Round 1
  18. Laravel-nestedset that base left and right values tree package
  19. C语言--pow()函数实现
  20. C++有关 const & 内敛 & 友元&静态成员那些事

热门文章

  1. WebRTC通信流程
  2. nginx android app 慢网络请求超时
  3. DEDE 常用的调用方法
  4. lucene和es总结
  5. eclipse导入项目出现叹号处理方法:
  6. 提取bmp图片的颜色信息,可直接framebuffer显示(c版本与python版本)
  7. 今年第一季全球PC出貨量同比下降5.2%
  8. 最后一周psp
  9. svg格式的中国地图轮廓图
  10. CYQ.Data V4系列全面开源(2013-08-04)