2012-04-10 86 views
0

我正在嘗試在adroid上使用CAMERA intent來拍照並在照片視圖中顯示它。下面的代碼工作正常,直到我拍照。然後我無法用「V」按鈕確認並返回到我的活動。如果我點擊「X」按鈕,android會返回到沒有照片的活動,但如果我點擊「V」確認圖片,則沒有任何反應,並且我仍然卡在相機屏幕中。Android相機卡住了 - 無法捕捉圖片

我正在使用API​​ 14並使用android 4.0.2在虛擬和物理設備上進行測試。

哪裏是我的錯?

import java.io.File; 
import android.app.Activity; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.os.Environment; 
import android.provider.MediaStore; 
import android.view.View; 
import android.widget.Button; 
import android.widget.ImageView; 

public class HandScryActivity extends Activity { 

    private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100; 
    private Uri uriSavedImage; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.handscry); 
     // Makes the filename 
     File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages"); 
     imagesFolder.mkdirs(); 
     File image = new File(imagesFolder, "image_001.jpg"); 
     uriSavedImage = Uri.fromFile(image); 
    } 

    // Handles onGame clicked buttons 
    public void btnHandClick(View v) { 
      Button clickedButton = (Button) v; 
     // according to clicked button 
     switch (clickedButton.getId()) { 
      case R.id.btnBackToGame: 
       this.finish(); 
       break; 
      case R.id.btnTakePicture: 
       Intent imageIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);    
       imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage); 
       startActivityForResult(imageIntent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); 
       break;    
      default: 
       break; 
     } 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     ImageView img = (ImageView) findViewById(R.id.imgHand); 
      if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) { 
      // Display image 
       if (resultCode == RESULT_OK) { 
        img.setImageURI(uriSavedImage);         
      } else if (resultCode == RESULT_CANCELED) { 
       // User cancelled the image capture 
      } else { 
       // Image capture failed, advise user 
      } 
     } 
    } 
} 

回答

1

在這裏你去解決方案,以防萬一別人會絆倒我的錯誤。我從一個網站,樣本,但是這部分似乎被卡住Android和在成功的情況下不能得到「OnActivityResult」:

// Makes the filename 
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages"); 
imagesFolder.mkdirs(); 
File image = new File(imagesFolder, "image_001.jpg"); 
uriSavedImage = Uri.fromFile(image); 

應與

File image = new File(Environment.getExternalStorageDirectory(), "test.jpg");   
uriSavedImage = Uri.fromFile(image); 
被替換