首页 > 代码库 > 调用android系统相机拍照并保存图片

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

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