2012-11-08 135 views
1

我从设备的本地相机捕获图像,并在使用imageview.problem在另一个活动中显示它在OnActivityResult方法我得到的是模糊的位图。我想得到原始大小的图像的位图。任何人都可以帮助我??在此先感谢。这是我的代码,我在onActivityResult方法中获取位图并将其保存到SD卡。图像从SD卡变得模糊。从本机拍摄模糊图像android

camera.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      try { 
       Intent mIntent=new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
       startActivityForResult(mIntent, CAMERA_PIC_REQUEST); 
       WookAtMeStaticVariables.retakePic=false; 
      } catch (Exception e) { 

       clickmessage="OnClickevent Exception"+e.getMessage(); 
       showAlertDialogForCameraClickException(TakePic.this); 

      } 

     } 
    }); 




     @Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    try { 
     if (requestCode == CAMERA_PIC_REQUEST && resultCode==RESULT_OK) 

     { 

       imageBitmap=(Bitmap)data.getExtras().get("data"); 
       imageBitmap = Bitmap.createScaledBitmap (imageBitmap,750,750, false); 
       File file = new File(Environment.getExternalStorageDirectory(),"WookAtMepic"+System.currentTimeMillis()+".jpg"); 
       WookAtMeStaticVariables.mImageFilePath=file.getAbsolutePath(); 

       OutputStream outStream = null; 
       try { 
        outStream = new FileOutputStream(file); 
        imageBitmap.compress(Bitmap.CompressFormat.JPEG, 100, outStream); 
        outStream.flush(); 
        outStream.close(); 
        } 

        catch(Exception e) 
        { 
         e.printStackTrace(); 
        } 


      Intent afterTakePicIntent= new Intent(TakePic.this,AfterTakePic.class); 
      startActivity(afterTakePicIntent); 

      } 

    } catch (Exception e) { 

     resultMessage="OnResultevent Exception"+e.getMessage(); 
     showAlertDialogForCameraResultException(TakePic.this); 
    } 
} 
+0

您正在使用哪种设备?某些相机(如三星的Galaxy Tab II)不会关注。 EVER。 – 323go

+0

我正在使用三星Galaxy S. –

+0

为什么不发布你的代码?我不知道关注Galaxy S的问题,所以它不是硬件。 – 323go

回答

1

它很容易被忽视,但你从ACTION_IMAGE_CAPTURE接收图像将是一个小位图,除非您指定EXTRA_OUTPUT。见注释here。原因在于全面的图像可能会非常大,大小为几MB,并且将数据量传递给intent-extra是有问题的。

因此,您需要将临时文件的存储URI(或者您可以发布自己的内容提供商)传递给它,然后调整它的大小。