2012-11-08 183 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(或者您可以發佈自己的內容提供商)傳遞給它,然後調整它的大小。