您的位置:首页 > 移动开发 > Android开发

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

2012-12-10 17:42 387 查看
1.调用系统照相机

// 照相
public void takePhotos(View view) {
Intent cameraIntent = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {   //此处进行处理
// TODO Auto-generated method stub
if(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 block
e.printStackTrace();
}finally{
try {
bos.flush();
bos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.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.上述的代码已经很详细,如有看不懂的童鞋可和我联系
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: