在android中上传大尺寸图片时出错

时间:2014-12-23 17:24:22

标签: android image out-of-memory

在我的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之前,我就遇到了问题。那么我该如何上传这些图片?

0 个答案:

没有答案