有没有办法以编程方式从网站URL获取徽标图标?

时间:2012-05-04 21:59:30

标签: java android xml layout webview

我正在创建一个活动,我将在其中显示所访问的网站列表及其徽标和用户选择的别名。

e.g。

  • 最近访问过的网站

    logo1 website1 /别名

    logo2 website2 /别名

    。所以没有

问题是,(参考附图)如何在http://左侧显示网站徽标?

Like below I want to just grab the icon and save it locally

7 个答案:

答案 0 :(得分:17)

使用本网站:

https://besticon-demo.herokuapp.com/allicons.json?url=www.stackoverflow.com

它将找到多个大小的网站的所有徽标,并返回带有元数据的精美json字符串,包括图标的URL。您只需将www.stackoverflow.com替换为您的域名。

如果您愿意,该网站还可以手动输入网站:

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"
      }
   ]
}

答案 1 :(得分:12)

它被称为favicon,你所要做的就是:

  1. 如果/favicon.ico处有图标,请使用该图标。
  2. 否则,获取页面内容,并从<link rel="shortcut icon" href="URL goes here" />中提取位置。您需要使用HTML解析器,并找到<link> relicon的{​​{1}}。

答案 2 :(得分:2)

我知道我迟到了,但是此API可以帮助其他人

Android不支持网站图标文件。您可以获取网站图标,但不能显示/使用它。

但是Google提供了免费的API以获取图像格式的图标。

https://www.google.com/s2/favicons?sz=64&domain_url=microsoft.com

使用毕加索在imageview中显示图标。

答案 3 :(得分:1)

尝试使用此代码:

imageview1.setImageBitmap(webview1.getFavicon());

答案 4 :(得分:1)

使用此logo.clearbit.com/stackoverflow.com

您甚至可以自定义以获得特定的大小和缩放的版本

logo.clearbit.com/stackoverflow.com?size=80&greyscale=true

答案 5 :(得分:0)

此方法可用于获取Favicon Icon位图

1 (in the second activity)
1 (in the main activity)

答案 6 :(得分:0)

这是一个python库,尝试从URL推断徽标图像:

https://github.com/dcollien/urlimage

它解析URL处的HTML,并尝试执行很多操作,包括:

  • 具有itemprop =“ image”或property =“ image”的元标记
  • 元标记,带有 property =“ og:image:secure_url”或property =“ og:image”
  • 元标记,带有 name =“ twitter:image”
  • 用于Microsoft磁贴的元标记,其名称为:name =“ msapplication-wide310x150logo”,name =“ msapplication-square310x310logo”,name =“ msapplication-square150x150logo”,name =“ msapplication-square70x70logo”
  • 带有rel =“ apple-touch-icon”的链接标签
  • 带有rel =“ icon”的链接标签
  • 试用“ {scheme}:// {domain} /favicon.ico”以查看其是否存在
  • 否则会拉出第一个img标签(在h1旁边)