我正在使用android在我的应用程序上选择图像,我不知道为什么,有时我有一个例外,我认为它总是我选择一个超过400或500 kb的图像,但我不确定。为什么?因为当我选择100 kb的小图像时,我没有得到异常,当我得到500kb或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
请给我一些关于这个例外的帮助,我需要解决它
感谢
答案 0 :(得分:1)
我只是将你的代码转储到我的手机中,它运行得很好。我也试过没有问题的5.5兆字节图像。
我想我建议在你的模拟器上设置一张SD卡。有很多关于如何在互联网上执行此操作的教程。在模拟器上设置SD卡后,您将能够在LogCat中获取异常并确定出错的位置。