我正在创建一个活动,我将在其中显示访问过的网站列表及其徽标和用户选择的别名。
例如
最近访问的网站
logo1 网站1/别名
logo2 网站2/别名
.
. 所以不行
问题是,(参考附图)如何让网站徽标显示在 http:// 的左侧?
使用本网站:
https://besticon-demo.herokuapp.com/allicons.json?url=www.stackoverflow.com
它将找到一个网站的多种尺寸的所有徽标,并返回一个带有元数据的漂亮 json 字符串,包括图标的 url。您只需替换www.stackoverflow.com
为您的域。
如果您愿意,该网站还有一个用于手动输入网站的 gui:
https://besticon-demo.herokuapp.com/
以下是查询堆栈溢出网站返回的示例字符串:
{
"url":"www.stackoverflow.com",
"icons":[
{
"url":"http://stackoverflow.com/apple-touch-icon.png",
"width":158,
"height":158,
"format":"png",
"bytes":3445,
"error":null,
"sha1sum":"c78bd457575a3221c6b3d0d17ffb00ffc63d7cd0"
},
{
"url":"http://cdn.sstatic.net/Sites/stackoverflow/img/favicon.ico?v=4f32ecc8f43d",
"width":32,
"height":32,
"format":"ico",
"bytes":5430,
"error":null,
"sha1sum":"4f32ecc8f43d0986b9c6ce9f37999e86c0b829ef"
},
{
"url":"http://stackoverflow.com/favicon.ico",
"width":32,
"height":32,
"format":"ico",
"bytes":5430,
"error":null,
"sha1sum":"4f32ecc8f43d0986b9c6ce9f37999e86c0b829ef"
}
]
}
它被称为网站图标,您所要做的就是:
/favicon.ico
,请使用它。<link rel="shortcut icon" href="URL goes here" />
<link>
rel
icon
shortcut icon
我知道我迟到了,但这个 API 会帮助其他人
Android 不支持网站图标文件。您可以获取 favicon,但不能显示/使用它。
但是 Google 提供了免费的 API 来获取图像格式的 favicon。
https://www.google.com/s2/favicons?sz=64&domain_url=microsoft.com
使用 Picasso 在 imageview 中显示图标。
使用这个logo.clearbit.com/stackoverflow.com
您甚至可以自定义以获得特定尺寸和 grascaled 版本
此方法可用于获取 Favicon Icon 位图
private Bitmap fetchFavicon(Uri uri) {
final Uri iconUri = uri.buildUpon().path("favicon.ico").build();
Log.i(TAG, "Fetching favicon from: " + iconUri);
InputStream is = null;
BufferedInputStream bis = null;
try
{
URLConnection conn = new URL(iconUri.toString()).openConnection();
conn.connect();
is = conn.getInputStream();
bis = new BufferedInputStream(is, 8192);
return BitmapFactory.decodeStream(bis);
} catch (IOException e) {
Log.w(TAG, "Failed to fetch favicon from " + iconUri, e);
return null;
}
}
尝试使用此代码:
imageview1.setImageBitmap(webview1.getFavicon());
这是一个尝试从 URL 推断徽标图像的 python 库:
https://github.com/dcollien/urlimage
它解析 url 处的 HTML,并尝试了很多事情,包括: