Java 安卓镜像没有';t从图像URL显示到图像视图
我想从“/4GLKF4Q.jpg”向ImageView显示图像,但图像URL中的图像未显示到ImageView。我能做这个吗 异步任务Java 安卓镜像没有';t从图像URL显示到图像视图,java,android,url,imageview,Java,Android,Url,Imageview,我想从“/4GLKF4Q.jpg”向ImageView显示图像,但图像URL中的图像未显示到ImageView。我能做这个吗 异步任务 class DownloadImageTask extends AsyncTask<String, Void, byte[]> { ImageView bmImage; public DownloadImageTask(ImageView bmImage) { this.bmImage = bmImage;
class DownloadImageTask extends AsyncTask<String, Void, byte[]> {
ImageView bmImage;
public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
protected byte[] doInBackground(String... urls) {
try {
URL url = new URL(urls[0]);
InputStream is = (InputStream) url.getContent();
byte[] buffer = new byte[8192];
int bytesRead;
ByteArrayOutputStream output = new ByteArrayOutputStream();
while ((bytesRead = is.read(buffer)) != -1) {
output.write(buffer, 0, bytesRead);
}
return output.toByteArray();
} catch (MalformedURLException e) {
e.printStackTrace();
return null;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
protected void onPostExecute(byte[] result) {
ByteArrayInputStream imageStream = new ByteArrayInputStream(result);
Bitmap bm = BitmapFactory.decodeStream(imageStream);
bmImage.setImageBitmap(bm);
}
}
图像URL中的图像未显示到imageview。
在Logcat中:
09-23 10:26:49.410 10591-10591/com.*** D/skia: --- SkImageDecoder::Factory returned null
从评论更新:将图像服务器更改为另一个服务器可以解决此问题。我想这是一个I.imgur.com问题
你不应该使用你自己的图像加载器任务,它会泄漏到某个地方。 有两个好的图书馆: -(来自Facebook) -(来自Square up) 还有UniversalImageLoader(UIL)
编码内存缓存
和磁盘缓存
)处理图像的所有缓存。它还减少了OOM(内存不足)问题。当视图中的图像离开屏幕时,它会自动回收位图,从而释放内存图像自动加载到后台线程中,视图在UI线程上更新。它甚至支持缓存 我用过毕加索,结果是一样的。Logcat日志为D/skia:---SkImageDecoder::工厂返回null。当我使用不同的图像URL时,它起作用了服务器不工作。嗯,我想可能有人会认为这张图片有问题,试试Fresco,看看是否也有问题。如果是,这可能是您设备上的软件问题我使用了fresco和SimpleDraweView。Logcat日志是由以下原因引起的:java.lang.NullPointerException:SimpleDraweView未初始化!作为@TahaKörkem,如果您认为图像、服务器或设备上的软件解码器有问题,我会继续使用不同的图像服务器,它会正常工作。谢谢你的评论。更好的方法是向用户阿奎里或毕加索提问。这个问题已经被问了很多次了,但大多数答案都过时了。现代的方法是使用NetworkImageView,请参见下面我的答案。
09-23 10:26:49.410 10591-10591/com.*** D/skia: --- SkImageDecoder::Factory returned null