android调用系统相机拍照并保存图片

调用系统相机:

//在某个事件中添加如下代码即可,不是说单击事件都不会写啊
startActivityForResult(new Intent(MediaStore.ACTION_IMAGE_CAPTURE),1);

解释:其中参数MediaStore.ACTION_IMAGE_CAPTURE是调用系统相机用的,而后面的1则是请求的Activity的标志,用来处理返回结果的

可以理解为:给系统相机的Activity添加一个请求标志,在用onActivityResult处理返回结果时,有一个与这个标志相对应的处理方案

保存图片:

// 使用startActivityForResult返回结果时调用的方法    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        // 如果返回值是正常的话        if (resultCode == Activity.RESULT_OK) {            // 验证请求码是否一至,也就是startActivityForResult的第二个参数            switch (requestCode) {            case 1:                saveCameraImage(data);                break;            default:                break;            }        }    }    /** 保存相机的图片 **/    private void saveCameraImage(Intent data) {        // 检查sd card是否存在        if (!Environment.getExternalStorageState().equals(                Environment.MEDIA_MOUNTED)) {            Log.i(TAG, "sd card is not avaiable/writeable right now.");            return;        }        // 为图片命名啊        String name = new DateFormat().format("yyyymmdd",                Calendar.getInstance(Locale.CHINA))                + ".jpg";        Bitmap bmp = (Bitmap) data.getExtras().get("data");// 解析返回的图片成bitmap        // 保存文件        FileOutputStream fos = null;        File file = new File("/mnt/sdcard/test/");        file.mkdirs();// 创建文件夹        String fileName = "/mnt/sdcard/test/" + name;// 保存路径        try {// 写入SD card            fos = new FileOutputStream(fileName);            bmp.compress(Bitmap.CompressFormat.JPEG, 100, fos);        } catch (FileNotFoundException e) {            e.printStackTrace();        } finally {            try {                fos.flush();                fos.close();            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }// 显示图片        ((ImageView) findViewById(R.id.show_image)).setImageBitmap(bmp);    }


最重要的是:不要忘记添加权限哦

<uses-permission android:name="android.permission.CAMERA" /><!-- 相机 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!-- 写入sdcard -->

参考:http://blog.csdn.net/bill_ming/article/details/7730305

更多相关文章

  1. react-native 0.62 fetch请求上传图片失败 ----------小白的天堂
  2. Android(安卓)常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配
  3. Android(安卓)Httpclient重定向问题
  4. Android(安卓)读取本地图片文件和读取图片的uri
  5. android 自定义照相机Camera黑屏
  6. Android(安卓)解析如何获取SDCard 内存
  7. android将图片保存到系统相册
  8. Android(安卓)实现图片的自动缩放,适应分辨率不同的手机
  9. Android(安卓)之 Fresco 显示圆形图片 之坑

随机推荐

  1. Android Bitmap内存优化
  2. android interview questions
  3. Android sharedUserId
  4. Android:Android官方培训课程中文版(v0.9
  5. Android(安卓)ListView的每个子Item如何
  6. android找不到图片资源
  7. android 操作sqlite数据库
  8. RelativeLayout 用法以及举例
  9. [Android官方API阅读]___
  10. 在 Android(安卓)上使用协程(二):Getting st