-1

我正在使用 android 在我的应用程序上挑选图像,但我不知道为什么,有时我会遇到异常,我认为我总是选择超过 400 或 500 kb 的图像,但我不确定。为什么?因为当我选择 100 kb 的小图像时,我没有得到异常,而当我获得 500 kb 或 1.5 mb 的图像时,它会崩溃

我不知道哪个例外是因为我必须用我的手机测试这个功能,我不能用模拟器测试,因为我不知道如何把图像放在模拟器上。

这是我的代码:

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

请帮我解决这个异常,我需要解决它

谢谢

4

1 回答 1

1

我刚刚将您的代码转储到我的手机中,它工作得很好。我还尝试了 5.5 兆字节的图像,没有问题。

我想我会推荐的是在你的模拟器上设置一个 SD 卡。网上有很多关于如何做到这一点的教程。在模拟器上设置 SD 卡后,您将能够在 LogCat 中获取异常并确定哪里出错了。

于 2011-01-29T21:12:35.687 回答