我试图获得网站的32px favicon.ico,但它获得的响应是16px图标,我想是因为我试图通过smarthphone获取它,但我尝试更改用户代理这里没有结果的http请愿是我的代码:
DefaultHttpClient client = new DefaultHttpClient();
String baseUrl = getBaseUrl(url);
HttpGet httpGet = new HttpGet(baseUrl + "/favicon.ico");
httpGet.setHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.45 Safari/535.19");
HttpResponse httpResponse = null;
try {
httpResponse = client.execute(httpGet);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}catch (NullPointerException e) {
e.printStackTrace();
}
InputStream is = null;
try {
is = (java.io.InputStream) httpResponse.getEntity().getContent();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (NullPointerException e) {
e.printStackTrace();
}
Drawable favicon = Drawable.createFromStream(is, "src");
final BitmapDrawable bd = (BitmapDrawable) favicon;
知道如何获得它吗? 感谢
答案 0 :(得分:1)
.ico
文件可以包含多张图片。因此,您获得的favicon.ico
文件可能包含16x16图片和 32x32图片。
您可以使用icotool
命令行工具分析.ico
文件:
# On Ubuntu
sudo apt-get install icoutils
icotool -l favicon.ico
--icon --index=1 --width=16 --height=16 --bit-depth=32 --palette-size=0
--icon --index=2 --width=32 --height=32 --bit-depth=32 --palette-size=0
--icon --index=3 --width=48 --height=48 --bit-depth=32 --palette-size=0
# 3 pictures in this favicon.ico file
在Windows上,当您使用默认查看器打开.ico
文件时(只需双击该文件),查看器可让您浏览文件中包含的多张图片。它不打印它们的分辨率,但至少你对你的奇怪行为发生了什么有了解。
答案 1 :(得分:0)
智能手机无法实现这一点。实际上某些网站的图标大小为16px,其他网站则为32px。 像facebook,google,twitter都有16px的favicon 和雅虎,谷歌加有32 px favicon ...