我正在尝试获取具有静态链接的图像并将其设置在ImageView下。但http给我提供了File Not Found的例外。相同的图像我可以在浏览器中轻松打开,如果我尝试访问的图像在url链接中没有静态,则相同的代码也能正常工作。有人可以帮助如何获取静态图像网址下载\获取?我不确定问题是否是因为静电或不是。
new DownloadImageTask(mImageView)
.execute("http://static.die.net/earth/mercator/1600.jpg");
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage() );
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}
答案 0 :(得分:2)
这与useragent有关。它适用于其他用户代理。 试试这个。
protected Bitmap doInBackground(String... urls) {
String ua = "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19";
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
System.setProperty("http.agent", ua);
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return mIcon11;
}
让我知道你的结果。
答案 1 :(得分:0)
可能他们关闭了子域static.die.net,die.net仍在工作。