在我的Android应用程序中,用户可以从库中选择一个图像并将其上传到应用程序中。我通过这种方式使用onActivityResult()来实现这一目标:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == RESULT_OK && null != data){
if (requestCode == 10) {
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]);
picturePath = cursor.getString(columnIndex);
cursor.close();
image = BitmapFactory.decodeFile(picturePath);
}
}
}
并且一切似乎都运行良好,但是当我尝试上传一个非常大的图像时,我在调用BitmapFactory.decodeFile()方法时得到了java.lang.outOfMemory错误。如果可以的话,我会减小图像的大小,但是在我开始使用Bitmap之前,我就遇到了问题。那么我该如何上传这些图片?