关于BitmapFactory.decodeFileDescri
2016-07-04 本文已影响0人
吃惊馆长
开发逗萁上遇到很奇怪的BUG
public Bitmap decodeSampledBitmapFromFileDescriptor(FileDescriptor fd, int reqWidth, int reqHeight) {
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFileDescriptor(fd, null, options);
options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
options.inJustDecodeBounds = false;
return BitmapFactory.decodeFileDescriptor(fd, null, options);
}
最后返回那一句
return BitmapFactory.decodeFileDescriptor(fd, null, options);
配置高的手机上面没有问题,但是配置低的手机如HM NOTE 1LTE上面时常返回null,百思不得其解。(但是真机调试时又是正常的,不知道是不是调试的时候内存没限制)
最后使用了BitmapFactory.decodeFile解决了
public Bitmap decodeSampledBitmapFromFile(String path, int reqWidth, int reqHeight) {
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(path, options);
options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
options.inJustDecodeBounds = false;
return BitmapFactory.decodeFile(path, options);
}
这样就算在HM NOTE 1LTE这种配置低的机子上也不会返回null