2012-12-07 75 views
0

我的onCreate():ACTION_IMAGE_CAPTURE不會調用onActivityResult?

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 


     Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

      imageFile = new File(Environment.getExternalStorageDirectory(), 
        "/image.jpg"); 

      System.out.println(imageFile +" is the path with extentions"); 
      outputFileUri = Uri.fromFile(imageFile); 
      intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
      startActivityForResult(intent, TAKE_PICTURE); 

     setContentView(R.layout.activity_head_size); 

System.out.println("OnCreate"); 
    } 

顯然,啓動相機並等待它完成並返回圖像。當完成後,它應該叫

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

然而,當我點擊保存在相機,它加載的onCreate並重新運行相機。然後,如果您重新拍攝了圖像並將其保存到活動中,但是,不運行onActivityResult?到底是怎麼回事?

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
      if(resultCode == 1){ 
      myImage = (ImageView) findViewById(R.id.imageView1); 


      myBitmap = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory() + 
        "/image.jpg"); 



      myBitmap = Bitmap.createScaledBitmap(myBitmap, 256, 256, false); 
       myImage.setImageBitmap(myBitmap); 

       width = myBitmap.getWidth(); 
       height = myBitmap.getHeight(); 


       orig = new int[width*height]; 

       myBitmap.getPixels(orig, 0, width, 0, 0, width, height); 

       System.out.println("ready for processing"); 
      } 
     } 
+0

我已經回答了這個問題之前 看看: http://stackoverflow.com/a/30266776/1531683 –

+0

我已經回答了這個問題之前 看看: HTTP://計算器.com/a/30266776/1531683 –

回答

1

使用,而不只是一個硬編碼的int枚舉值。

if(resultCode == RESULT_OK){ 

從文檔,RESULT_OK = -1,你要找的1。此外,我沒有看到你在哪裏檢查的requestCode==TAKE_PICTURE,這應該是一個預申請爲好,以保證你正在迴應正確的意圖。

+0

謝謝你的工作;然而,另一個問題是:當相機應用程序啓動時,它必須保持橫向。如果手機處於移動狀態,它只是重新啓動相機? –

相關問題