BitmapFactory.decodeStream导致“读取失败:EBADF(错误的文件编号)”错误

时间:2014-10-22 01:44:27

标签: android bitmap sd-card

我有一段代码,使用2级图像加载来加载来自SD卡的图像。

首先,我使用方法BitmapFactory.decodeStream来解码图像边界,然后使用它来真正加载(采样)图像。

这是我的方法。我认为它源自我有一天在这里看到的一个例子,但我不记得这个帖子。

public static Bitmap decodeSampledBitmapFromStream(Context c, Uri uri, int reqWidth, int reqHeight) throws IOException {
    FileInputStream fis = getSourceStream(uri, c);

    final BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeStream(fis, null, options);

    options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
    options.inJustDecodeBounds = false;
    fis = getSourceStream(uri, c);

    return BitmapFactory.decodeStream(fis, null, options);
}

它总能在真实设备上完美运行,但现在我需要在AVD中运行一些测试,但当我点击return BitmapFactory.decodeStream(fis, null, options)行(第二个decodeStream)时,我收到此错误:

java.io.IOException: read failed: EBADF (Bad file number)

设置了读/写SD卡权限。

应该做什么?

0 个答案:

没有答案