Android将文件转换为位图始终返回null

时间:2016-04-26 13:18:36

标签: android bitmap bitmapfactory

我的应用程序中存在File,我希望将其转换为Bitmap并带有选项。我有一个方法。但总是这个方法返回null,当我尝试获取位图的属性时,我抓住了NullPointerException。这是一个代码:

public static Bitmap convertToBitmap(File file) {
    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    options.inSampleSize = 4;
    return BitmapFactory.decodeFile(file.getAbsolutePath(), options);
}

如果我删除了选项并致电BitmapFactory.decodeFile(file.getAbsolutePath()),我会在某些设备上获得OutOfMemoryError。我该怎么办?

2 个答案:

答案 0 :(得分:0)

您可以尝试以下代码:)

    final Uri uri= Uri.fromFile(new File(file))
    try{
        Bitmap selectedImageBitMap= MediaStore.Images.Media.getBitmap(this.getContentResolver(),uri);
        //you have your image bitmap :)
      }
    catch (FileNotFoundException fileNotFoundException){
        Log.d("sandeep","could not find file");
      }
    catch(IOException ioexception) {
        Log.d("sandeep", "IOException");
      }

Lemme知道你是否还有问题:)快乐编码:)

答案 1 :(得分:0)

试试这个

BitmapFactory.Options bmOptions = new BitmapFactory.Options();
Bitmap bitmap =BitmapFactory.decodeFile(file.getAbsolutePath(),bmOptions);
bitmap =Bitmap.createScaledBitmap(bitmap,parent.getWidth(),parent.getHeight(),true);