带有`inJustDecodeBounds = true`的`BitmapFactory.decodeStream`总是返回100x100

时间:2012-09-21 07:27:00

标签: android bitmap

这是我的android代码:

InputStream input = getAssets().open("photo.jpg");
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeStream(input, null, options);
System.out.println("### img size: " + options.outWidth + "x" + options.outHeight);

但我发现无论我的图像有多大,它都会打印出来:

### img size: 100x100

哪里错了?


更新

我重新部署应用程序后它工作正常,但我没有修改任何内容。这很奇怪,但我想在这里保留这个问题,也许有一天它会出现。

1 个答案:

答案 0 :(得分:0)

//读取位图尺寸和类型

BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeResource(getResources(), R.id.myimage, options);
int imageHeight = options.outHeight;
int imageWidth = options.outWidth;
String imageType = options.outMimeType;

Ref here:

//您没有分配对象名称

InputStream input = getAssets().open("photo.jpg");

BitmapFactory类提供了几种解码方法(decodeByteArray(), decodeFile(), decodeResource()等,用于从各种来源创建位图。