2011-08-09 22 views
0

サイト全体で利用可能ないくつかのコードを使用して、ギャラリーインテントを呼び出す小さなアプリケーションを構築し、画像が選択されたときにパスを取り戻します。Android:インテントでギャラリーを呼び出し、画像を選択

public class SDCardImagesActivity extends Activity { 
    final int REQ_CODE_PICK_IMAGE= 1; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.header); 
     Intent i = new Intent(Intent.ACTION_PICK, 
        android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
     startActivityForResult(i, REQ_CODE_PICK_IMAGE); 
    } 
    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     // TODO Auto-generated method stub 
     super.onActivityResult(requestCode, resultCode, data); 

     switch(requestCode) { 
     case REQ_CODE_PICK_IMAGE: 
      if(resultCode == RESULT_OK){ 
       Uri selectedImage = data.getData(); 
       String[] filePathColumn = {MediaStore.Images.Media.DATA}; 

       Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null); 
       cursor.moveToFirst(); 

       int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
       String filePath = cursor.getString(columnIndex); 
       cursor.close(); 


       Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath); 

       Toast.makeText(SDCardImagesActivity.this, "selected", 2000).show(); 
      } 
     } 

    } 
} 

しかし、私はこのプログラムを実行すると、私は誰かが私を助けることができる例外

08-09 15:12:53.191: ERROR/AndroidRuntime(26694): Caused by: android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0 

以下ます。前もって感謝します。

答えて

0

クエリが0行を返しているため、エラーが発生しています。CursorIndexOutOfBoundsException = 0行のカーソルの最初の行にアクセスしようとしています。

上記のメディア(SDカード)に写真があることを確認しましたか?

+0

画像があります。画像を選択すると、この例外だけがスローされます。 Arrayoutofbound :( –

+0

私は自分のアプリケーションを使って作成した画像にアクセスしようとしていましたが、そのためのアクセス権がないようです。ネイティブカメラで撮影した画像を試してみると、魅力的です。 –

関連する問題