Java 使用循环从url加载图像
我正在使用以下代码从服务器下载图像:Java 使用循环从url加载图像,java,android,stream,bitmap,bitmapfactory,Java,Android,Stream,Bitmap,Bitmapfactory,我正在使用以下代码从服务器下载图像: public Bitmap getBitmap(String path){ URL url=new URL(path); URLConnection connection=url.openConnection(); connection.setDoInput(true); connection.connect(); InputStream is=connection.getInputStream(); Bitm
public Bitmap getBitmap(String path){
URL url=new URL(path);
URLConnection connection=url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream is=connection.getInputStream();
Bitmap bmp=BitmapFactory.decodeStream(is);
return bmp;
}
它对一幅图像很好,但如果我在循环中使用它,在第二次、第三次等迭代中,它会返回一些奇怪的东西(位图的mWidth
和mHeight
字段是-1
)问题出在哪里?
(path
第二次、第三次等。迭代很好,我检查了这个)
编辑
循环示例:
//images - is a String array
for(int i=0; i<images.length(); i++){
Bitmap bmp=getBitmap(images[i]);
}
//images-是一个字符串数组
对于(int i=0;i尝试调用Bitmap。在使用完一个位图后,但在加载下一个位图之前,请循环使用
问题是,即使比可能也无济于事——位图无法调整自身大小
也许,最好让位图数组成为一条永远的路径
我担心,由于优化而导致的java机器(或编译器)不会破坏以前的位图,而是尝试重用它。请在这里写下结果。这很有趣
尝试读取不读取图像的图像大小:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
Bitmap btemp = BitmapFactory.decodeFile(selectedImagePath,options);
在此之后,使用以下代码获取高度和宽度:
options.outHeight for height
options.outWidth for width
你看到了什么
尝试更改路径的顺序-同样,只有第一个路径是可以的?如果不是,问题在文件中。如果是,在连接/流/工厂中。请在这里说明您是如何进行循环的。在我看来,这里的许多人投了非常难回答的问题,他们不知道如何回答。我不同意这种政治,因此我提出你在这里投票。@Gangnus,像“错误在哪里?”这样的问题听起来总是很糟糕)我的错误。这里有很多询问者要求找出错误。愚蠢的阿瑞永远不会受到惩罚。重复的问题——永远不要,如果它们很容易的话。格式错误-总是。英语不好——主要是(那些没有幸出生在讲英语的国家的穷人!)和难学的人——如果他们不是关于某种外来技术,而是关于通常的技术,但需要深度、思考或研究。我试过,但仍然一无所获。我不认为JVM可以重用以前的值,因为有一个BitmapFactory类,它总是返回新实例并在不同的对象中加载位图?尝试更改路径的顺序-同样,只有第一个路径可以吗?如果不是,问题就出在文件中。如果是,则在connection/stream/factory中。看起来像是流中的某个地方出现了问题。我决定改用WebView会更有效。不过,谢谢)没什么,快乐就在我这边。但遗憾的是,我不知道还有一个关于流/位图/连接的问题。