2014-01-13 69 views
1

Folks。以編程方式從相機文件夾獲取圖像

我在這裏面臨一個奇怪的問題。我有一個應用程序,您可以從按鈕點擊按鈕中的圖庫或相機中選擇一個圖像。除了每當我從我的相機文件夾中選擇任何圖片時,應用程序剛剛崩潰,一切進展順利。下面我的代碼

case R.id.camera: 

     AlertDialog.Builder builder = new AlertDialog.Builder(Splash.this); 

     builder.setTitle("Choose Image Source"); 
     builder.setItems(new CharSequence[] { "Gallery", "Camera" }, 
       new DialogInterface.OnClickListener() { 

        public void onClick(DialogInterface dialog, int which) { 
         switch (which) { 
         case 0: 

          Intent intent = new Intent(
            Intent.ACTION_GET_CONTENT); 
          intent.setType("image/*"); 

          Intent chooser = Intent.createChooser(intent, 
            "Choose a Picture"); 
          startActivityForResult(chooser, 
            ACTION_REQUEST_GALLERY); 

          break; 

         case 1: 

          Intent cameraIntent = new Intent(
            android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
          String mImageCaptureUri = null; 
          cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, 
            mImageCaptureUri); 
          startActivityForResult(cameraIntent, 
            ACTION_REQUEST_CAMERA); 

          break; 

         } 
        } 
       }); 

     builder.show(); 

     break; 

活動的結果:

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == RESULT_OK) { 

     switch (requestCode) { 
     case ACTION_REQUEST_GALLERY: 


      Uri selectedImageUri; 

      selectedImageUri = data == null ? null : data.getData(); 

      cap.setImageURI(selectedImageUri); 



      break; 

     case ACTION_REQUEST_CAMERA: 

      Bitmap photo = (Bitmap) data.getExtras().get("data"); 

      cap.setImageBitmap(photo); 

      // CALL THIS METHOD TO GET THE URI FROM THE BITMAP 
      Uri tempUri = getImageUri(getApplicationContext(), photo); 

      // CALL THIS METHOD TO GET THE ACTUAL PATH 
      File finalFile = new File(getRealPathFromURI(tempUri)); 

      Toast.makeText(getApplicationContext(), 
        finalFile.getAbsolutePath(), 4000).show(); 

      break; 
     } 

    } 
} 
+1

請張貼您的logcat與錯誤的詳細信息。 – NigelK

+0

不幸的是我用我的手機來測試它,因爲模擬器沒有任何圖片可供選擇。 –

+0

它只與相機文件夾照片崩潰,我的我的Facebook相冊在我的畫廊,它工作正常。 –

回答

0

這是很難不logcat的說,但最可能的原因就是大的圖像尺寸,帶攝像頭所拍攝的照片是大展現不結垢,這是您嘗試使用某些圖像而相機圖像不適用的原因。嘗試谷歌:縮放larg位圖谷歌開發人員,你會發現官方帖子

+0

謝謝,我發現這是問題所在。我從相機文件夾中減少選定的圖像,然後才能查看它並且它可以正常工作!謝謝。 –

相關問題