带有 inJustDecodeBounds=true 的 BitmapFactory.decodeStream 始终返回 100x100
Posted
技术标签:
【中文标题】带有 inJustDecodeBounds=true 的 BitmapFactory.decodeStream 始终返回 100x100【英文标题】:BitmapFactory.decodeStream with inJustDecodeBounds=true always return 100x100 【发布时间】:2012-09-21 07:26:59 【问题描述】:这是我的安卓代码:
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
哪里错了?
更新
重新部署我的应用程序后它工作正常,但我没有修改任何内容。这很奇怪,但我想把这个问题留在这里,也许有一天它会再次出现。
【问题讨论】:
InputStream 输入=???????????? 你在哪里测试这个?在手机或模拟器上? 在我的安卓平板上。我不知道为什么在重新部署我的应用程序后它现在很好 - 我没有修改任何内容...... 【参考方案1】://读取位图尺寸和类型
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()
等)用于从各种来源创建位图。
【讨论】:
对不起,这里没有resource
,只是一个流。以上是关于带有 inJustDecodeBounds=true 的 BitmapFactory.decodeStream 始终返回 100x100的主要内容,如果未能解决你的问题,请参考以下文章
带有 RecyclerView 的片段:java.lang.IllegalArgumentException:报废或附加的视图可能不会被回收。 isScrap:false isAttached:tru