我想要实现的是能够从输入流计算位图的高度和宽度,而无需实际更改 BitmapFactory.Options
这就是我所做的:
private Boolean testSize(InputStream inputStream){
BitmapFactory.Options Bitmp_Options = new BitmapFactory.Options();
Bitmp_Options.inJustDecodeBounds = true;
BitmapFactory.decodeResourceStream(getResources(), new TypedValue(), inputStream, new Rect(), Bitmp_Options);
int currentImageHeight = Bitmp_Options.outHeight;
int currentImageWidth = Bitmp_Options.outWidth;
if(currentImageHeight > 200 || currentImageWidth > 200){
Object obj = map.remove(pageCounter);
Log.i("Page recycled", obj.toString());
return true;
}
return false;
}
现在这里的主要问题是它将 BitmapFactory.Options 更改为无法正确解码流的状态。
我的问题是有另一种重置 BitmapFactory.Options 的方法吗?或其他可能的解决方案?
另一种方法:(注意*应用top方法时originalBitmap为null)
这是我的原始代码:
Bitmap originalBitmap = BitmapFactory.decodeStream(InpStream);
应用 Deev 和 Nobu Game 的建议:(没有变化)
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = false;
Bitmap originalBitmap = BitmapFactory.decodeStream(InpStream,null,options);