Android开发之获取相册照片和获取拍照照片二

来源:互联网 发布:java的同步锁有哪几种 编辑:程序博客网 时间:2024/05/22 04:52

转至 http://blog.csdn.net/beyond0525/article/details/8940840

上一篇文章中讲解了照相机获取照片的时候遇到了可能取得的uri为null的状态,并给出了相应的解决方案,但是那种解决方案得到的图片是压缩过的,如果我们想得到相机拍摄出来的原照片,我们又应该怎样做呢?
其实方式很简单,在
Intent getImageByCamera = new Intent("android.media.action.IMAGE_CAPTURE");
之后我们直接讲文件先保存到指定的路径filepath,然后直接在
onActivityResult(int requestCode, int resultCode, Intent data)
中把filepath传递过去就行了。

[java] view plaincopy
  1. private String capturePath =null; 
[java] view plaincopy
  1. protected void getImageFromCamera() { 
  2.         String state = Environment.getExternalStorageState(); 
  3.         if (state.equals(Environment.MEDIA_MOUNTED)) { 
  4.             Intent getImageByCamera = new Intent("android.media.action.IMAGE_CAPTURE"); 
  5.             String out_file_path = Constant.SAVED_IMAGE_DIR_PATH; 
  6.             File dir = new File(out_file_path); 
  7.             if (!dir.exists()) { 
  8.                 dir.mkdirs(); 
  9.             } 
  10.             capturePath = Constant.SAVED_IMAGE_DIR_PATH + System.currentTimeMillis() +".jpg"; 
  11.             getImageByCamera.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(capturePath))); 
  12.             getImageByCamera.putExtra(MediaStore.EXTRA_VIDEO_QUALITY,1); 
  13.             startActivityForResult(getImageByCamera, Constant.REQUEST_CODE_CAPTURE_CAMEIA); 
  14.         } 
  15.         else { 
  16.             Toast.makeText(getApplicationContext(),"请确认已经插入SD卡", Toast.LENGTH_LONG).show(); 
  17.         } 
  18.     } 

在onActivityResult(int requestCode, int resultCode, Intent data)中我们只要把路径filepath定义为全局的变量传送过来就行了。

这样得到的图片是直接从相机中拍摄得到的照片,不会被压缩了。

0 1
原创粉丝点击