android调用系统照相机并保持图片到本地

来源:互联网 发布:几米 微笑的鱼 知乎 编辑:程序博客网 时间:2024/05/28 09:32

1.调用系统照相机

// 照相public void takePhotos(View view) {Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);startActivityForResult(cameraIntent, CAMERA_REQUEST);}
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {   //此处进行处理// TODO Auto-generated method stubif(requestCode == CAMERA_REQUEST && resultCode == RESULT_OK && data.getExtras().get("data")!=null){if(rsd.getPhoto1URL() != null){  //删除上一张图片信息deleteImgage(rsd.getPhoto1URL());}Bitmap photo = (Bitmap)data.getExtras().get("data");File baseFile = FileHelper.getPicBaseFile();if(baseFile == null){showLongMessage("SD卡不可用,请检查SD卡情况");return;}String fileName = getFileName();   //图片名称rsd.setPhoto1URL(fileName);saveBitmap(photo, fileName, baseFile);imgPhoto.setImageBitmap(photo);}super.onActivityResult(requestCode, resultCode, data);}

2.
//获取文件名private String getFileName(){SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss",Locale.getDefault());Date cruDate = Calendar.getInstance().getTime();String strDate = sdf.format(cruDate);String userName = Config.getUser(Question_Record.this).getLoginName();String fileName = userName + strDate+".jpg";return fileName;}
3.
//保存图片private void saveBitmap(Bitmap bitmap,String fileName,File baseFile){FileOutputStream bos = null;File imgFile = new File(baseFile,"/"+fileName);try {bos = new FileOutputStream(imgFile);bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos);} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {bos.flush();bos.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

4.文件帮助类

public class FileHelper {private static String filePath = "inspect/image";/** * 图片基础路径 * @return */public static File getPicBaseFile() {if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {  //文件可用File f = new File(Environment.getExternalStorageDirectory(), filePath);if(!f.exists()) f.mkdirs();return f;}else{return null;}}}

5.上述的代码已经很详细,如有看不懂的童鞋可和我联系
原创粉丝点击