Android: вызвать галерею через намерение и выбрать изображение - PullRequest
0 голосов
/ 09 августа 2011

используя несколько кодов, доступных по всему сайту, я создал небольшое приложение, которое вызывало бы намерение галереи, и при выборе изображения путь восстанавливался.

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

Может кто-нибудь мне помочь.Заранее спасибо.

1 Ответ

0 голосов
/ 09 августа 2011

Ваш запрос возвращает 0 строк, поэтому вы получаете сообщение об ошибке CursorIndexOutOfBoundsException = попытка получить доступ к первой строке курсора с 0 строками.

Вы убедились, что это картинки на указанном носителе (SDкарточка)?

...