Исключение при выборе изображения из галереи (SD-карты) для использования в моем приложении ... ¿почему? - PullRequest
0 голосов
/ 29 января 2011

Я выбираю изображения в своем приложении с помощью Android, и я не знаю, почему, иногда я получаю исключение, я думаю, что это всегда, я выбираю изображение с более чем 400 или 500 КБ, но я не уверен. Зачем? потому что, когда я выбираю маленькие изображения размером 100 КБ, я не получаю исключения, а когда я получаю изображения размером 500 КБ или 1,5 МБ, да, происходит сбой

Я не знаю, за исключением того, что мне нужно протестировать эту функцию на моем телефоне, я не могу проверить с помощью эмулятора, потому что я не знаю, как поместить изображения на эмуляторе.

это мой код:

changeImageButton.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Intent i = new Intent(Intent.ACTION_PICK,
                        android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
                startActivityForResult(i, ACTIVITY_SELECT_IMAGE);
            }
        }); 



protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { 
        super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 

        switch(requestCode) {
        case 1:
        {
            setResult(1);
            finish();    
        }
        case ACTIVITY_SELECT_IMAGE:
            if(resultCode == RESULT_OK){  
                Uri selectedImage = imageReturnedIntent.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();

                selectedPhoto = BitmapFactory.decodeFile(filePath);
                //profileImage.setImageBitmap(selectedPhoto);
                profileImage.setImageBitmap(Bitmap.createScaledBitmap(selectedPhoto, 80, 80, false));
            }
        }
    }

profileImage - это ImageView моего макета. и я использую масштабированный butmap, чтобы изменить размер изображения до 80x80

Пожалуйста, помогите мне с этим исключением, мне нужно решить его

спасибо

1 Ответ

1 голос
/ 30 января 2011

Я просто сбросил твой код в телефон, и он работает просто отлично. Я также без проблем пробовал 5,5 мегабайтные изображения.

Думаю, я бы порекомендовал настроить SD-карту на вашем эмуляторе. Есть много учебников о том, как это сделать в Интернете. После того, как вы настроите SD-карту в эмуляторе, вы сможете получить исключение в LogCat и определить, в чем дело.

...