如果要在自己的应用中实现拍照的功能,首先要在AndroidManifest.xml文件中添加权限:

<uses-permission android:name="android.permission.CAMERA"/>  

启动相机的方法非常简单,通过intent访问MediaStore.ACTION_IMAGE_CAPTURE

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);startActivityForResult(intent, 1);

拍照并确认后,Activity的onActivityResult方法会被调用,在这里可以获取图片的数据。

onActivityResult(int requestCode, int resultCode, Intent data) {    if (requestCode == 1) {        if (resultCode == RESULT_OK) {            Bitmap bmPhoto = (Bitmap) data.getExtras().get("data");            // You can set bitmap to ImageView here        }    }}

用这种方法,会发现获取的Bitmap很小,这其实是拍下的图片的缩略图。

如果想获取原始的大图,推荐的方法是在启动相机前先指定好图片的文件地址,通知intent,同时也保留在成员变量中。

然后在onActivityResult函数中,可以直接打开该文件。

第一段代码做如下修改:

String sFileFullPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/test.jpg";File file = new File(sFileFullPath);Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));startActivityForResult(intent, 1);

更多相关文章

  1. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
  2. Android获取设备唯一标识完美解决方案
  3. android WebView 图片缩放功能小结
  4. Android(安卓)主流图片库Picasso Glide Fresco对比分析
  5. Android(安卓)Q 电量使用图分析 show app usage
  6. Android获取屏幕大小
  7. 安卓(android)使用GPS,获取经纬度
  8. Android获取基带版本
  9. Android(安卓)获取存储卡路径和空间使用情况

随机推荐

  1. SQL Server 2008的逻辑查询处理步骤
  2. 批处理 动态sql
  3. 通过备份记录获取数据库的增长情况
  4. sqlserver 2000 远程连接 服务器的解决方
  5. Sql Server 字符串聚合函数
  6. insert into tbl() select * from tb2中
  7. sql 去零函数 datagridview中数字类型常
  8. table 行转列的sql详解
  9. 三步堵死 SQL Server注入漏洞
  10. 常用SQL功能语句