2011-05-25 82 views
0

我想用相機拍攝圖像併發送到服務器。如何在我的應用程序中創建適用於所有Android設備的相機動作

當用戶打開我的應用程序的相機部分時,我想向他展示他正在使用的設備的默認相機。目前以下是我使用捕獲圖像

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(intent, TAKE_RECEIPT); 

當運行在HTC的設備本代碼兩行代碼,捕獲所述圖像之後它表現出的圖像的預覽用做和奪回一個按鈕。當我點擊完成它將移到上一個活動。

當我在moto設備中使用代碼時,在捕獲圖像後,它顯示圖像的預覽,其中插入,重新取消並取消。當我點擊完成它將移到上一個活動。

像這樣,它會有所不同所有設備。所以當我點擊完成或插入或任何其他設備的任何其他按鈕肯定按鈕我想開始上傳過程。

如何進行此請幫助我....

回答

7

您可以使用下面的代碼來解決你的問題...

protected void startCameraActivity() 

{ 

    // TODO Auto-generated method stub 
     Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 

     startActivityForResult(intent, 0); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    { 
     switch(resultCode) 
     { 
      case 0: 
       break; 

      case -1: 
       onPhotoTaken(); 
       break; 
     } 
    } 

    protected void onPhotoTaken() 
    { 

     ///write code here what you want to done after capture the image using device camera 
    } 

    @Override 
    protected void onRestoreInstanceState(Bundle savedInstanceState) 
    { 
     if(savedInstanceState.getBoolean(add_project1.PHOTO_TAKEN)) 
     { 
      onPhotoTaken(); 
     } 
    } 

    @Override 
    protected void onSaveInstanceState(Bundle outState) 
    { 
     outState.putBoolean(add_project1.PHOTO_TAKEN, _taken); 
    } 
+0

你能給我完整的代碼嗎?或者我在這裏發佈我的問題http://stackoverflow.com/questions/13599201/get-error-when-capture-image/13599823#13599823 – 2012-11-28 07:36:24

0

我不知道,如果問題只是如何在圖像捕獲後上傳..但如果它僅僅是它,我會爲您提供一個解決方案,在您從捕獲意圖回到您的活動後處理它。

您可以指定一個路徑,以節省您的圖像,當你開始拍攝意圖:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
File file = new File(Environment.getExternalStorageDirectory(), "image.jpg"); 
outputFileUri = Uri.fromFile(file); 
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
startActivityForResult(intent, TAKE_RECEIPT); 

然後,您可以處理上傳您的onActivityResult:

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

    if (requestCode == TAKE_RECEIPT) { 
     if (resultCode == Activity.RESULT_OK) {    
       // user took a picture, upload it 
       // outputFileUri contains the uri to your file 
       // you should delete it when the upload completes 

     } else if (resultCode == Activity.RESULT_CANCELED) { 
       //user canceled - do nothing 
     } 
    } 
} 
0

其實這個問題到時候我們在G上運行這段代碼oogle nexus 1設備 ,因爲它捕獲的圖像,然後當我們點擊完成按鈕異常出現..這是空指針在Uri SelectedImage = data.getData();

相關問題