2012-12-20 31 views
1

嗨,我已經使用SurfaceView和拍照用下面的代碼活動並從這個代碼這段代碼</p> <pre><code> startActivityForResult(new Intent(PictureEditor.this, CustomCamera.class), CAMERA_REQUEST3); </code></pre> <p>拍照的Android

首先我開始活動,然後得到結果後不關閉

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == RESULT_OK) { 
     if (requestCode == CAMERA_REQUEST3) { 
      BitmapFactory.Options abc = new BitmapFactory.Options(); 
      abc.inJustDecodeBounds = true; 
      BitmapFactory.decodeFile((Environment.getExternalStorageDirectory() + File.separator + "tester.png"), abc); 
      abc.inSampleSize = calculateInSampleSize(abc, w, h) + 1; 
      abc.inJustDecodeBounds = false; 
      view.setBackBitmap(BitmapFactory.decodeFile((Environment.getExternalStorageDirectory() + File.separator + "tester.png"), abc)); 

     } 

現在CustomeCamera類的代碼如下

  ///Handles when mTakePicture is clicked 
private OnClickListener mTakePictureAction = new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     if (mCamera != null) 
      mCamera.takePicture(CustomCamera.this); 


    } 
}; 

然後

 @Override 
    public void takePicture(Activity activity) { 
     if (mCamera != null) 
      mCamera.takePicture(shutterCallback, rawCallback, jpegCallback); 
     Intent returnIntent = new Intent(); 
     activity.setResult(mActivity.RESULT_OK, returnIntent); 
     activity.finish(); 
    } 

問題捕獲圖像,但該活動沒有得到完成!有人可以建議我該做什麼!

+0

測試它,我認爲活動應該結束。你應該解僱其活性其中U想去 – yokees

+0

另一個意圖是什麼'activity''和''mActivity''之間'的區別? – harism

+0

雅有以前的活動,這稱爲這項活動,它應該開始! –

回答

3

您需要在onActivityResult()中完成此活動從其開始的活動中的完成活動的代碼。

因此您之前的活動完成。 。 。

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    super.onActivityResult(requestCode, resultCode, data); 
    switch(requestCode) 
    { 
     case YOUR_REQUEST_CODE: 
           finish(); 
    } 
} 

編輯:

先改變此代碼。

Intent returnIntent = new Intent(); 
activity.setResult(Activity.RESULT_OK, returnIntent); 
activity.finish(); 

然後在onActivityResult()首先在此之後檢查請求碼條件檢查結果代碼條件的請求代碼條件。

+0

亞我已經這樣做 –

+0

但Chirag這個完成將完成當前的活動! –

+0

@SiddhpuraAmit請將此代碼發佈到您之前的活動中。 –

0

我有一個強烈的感覺,而

@Override 
public void takePicture(Activity activity) { 
    if (mCamera != null) 
     mCamera.takePicture(shutterCallback, rawCallback, jpegCallback); 
    Intent returnIntent = new Intent(); 
    activity.setResult(mActivity.RESULT_OK, returnIntent); 
    activity.finish(); 
} 

我也不太清楚的地方被卡住(從代碼上面的例子)主(UI)線程被卡住了, 可能性

1)圖像不能被保存

2)圖象不能編碼

和等

您可以通過運行調試

相關問題