调用相机拍照后返回照片过小的问题

来源:互联网 发布:啊哈算法pdf百度云 编辑:程序博客网 时间:2024/04/29 15:33

http://blog.csdn.net/giantgreen/article/details/8733290


最近通过Intent调用系统相机拍照后,发现返回的照片像素变小,照片质量也变低,上网搜索后问题得到解决,感谢那位高人。

代码如下:

1.调用系统相机进行拍照

[java] view plaincopy
  1. String SD_CARD_TEMP_DIR="/mnt/sdcard/"+"tem.jpg";  
  2. Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);  
  3. intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT,Uri.fromFile(new File(SD_CARD_TEMP_DIR)));  
  4. startActivityForResult(intent,10);//requestCode:10,任意(If >= 0, this code will be returned in onActivityResult() when the activity exits.)   


2.覆写onActivityResult(),用来处理返回的数据

[java] view plaincopy
  1. @Override  
  2. protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
  3.         String sdStatus = Environment.getExternalStorageState();  
  4.         if(!sdStatus.equals(Environment.MEDIA_MOUNTED))  
  5.         {  
  6.             return;  
  7.         }  
  8.           ContentResolver resolver = getContentResolver();  
  9.             try {  
  10.                 File f = new File(SD_CARD_TEMP_DIR);  
  11.                 try {  
  12.                     Uri capturedImage = Uri.parse(android.provider.MediaStore.Images.Media.insertImage(  
  13.                             getContentResolver(), f.getAbsolutePath(), nullnull));  
  14.                     // 将图片内容解析成字节数组  
  15.                     mContent = readStream(resolver.openInputStream(Uri.parse(capturedImage.toString())));  
  16.                     // 将字节数组转换为ImageView可调用的Bitmap对象  
  17.                     bitmap = getPicFromBytes(mContent, null);  
  18.                     //把得到的图片绑定在控件上显示  
  19.                     ((ImageView)findViewById(R.id.camera_dispaly)).setImageBitmap(bitmap);  
  20.                 } catch (FileNotFoundException e) {  
  21.                     e.printStackTrace();  
  22.                 }  
  23.             } catch (Exception e) {  
  24.             }  
  25. }  

3.OK
0 0