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

mas*_*ask 5 java xml layout android webview

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

例如

  • 最近的网站访问

    logo1 website1 /别名

    logo2 website2 /别名

    .

    .所以不行

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

如下所示,我想抓住图标并将其保存在本地

Jac*_*eld 17

使用本网站:

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

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

如果您愿意,该网站还有手动输入网站的gui:

https://besticon-demo.herokuapp.com/
Run Code Online (Sandbox Code Playgroud)

这是从查询堆栈溢出网站返回的示例字符串:

{
   "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"
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

  • 截至 2020 年 8 月,网站已关闭。 (2认同)

Ry-*_*Ry- 12

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

  1. 如果有一个图标/favicon.ico,请使用它.
  2. 否则,获取页面的内容,并从中提取位置.你需要使用一个HTML解析器,并找到一个或两个或.<link rel="shortcut icon" href="URL goes here" /><link>reliconshortcut icon

  • 我得到了这个方法提供的谷歌网址的帮助.http://www.google.com/s2/favicons?domain=www.domain.com抓住favIcon.仍然在努力使背景变得透明,因为其中一些是白色BKG,另一个是黑色.不确定如何动态处理这些背景.@minitTech感谢您的帮助,让我开始了. (5认同)

Kun*_*pta 8

使用此徽标.clearbit.com/stackoverflow.com

您甚至可以定制以获得特定尺寸和缩放版本

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


Pri*_*ade 6

我知道我迟到了但是这个 API 会帮助其他人

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

但是谷歌提供了免费的 API 来获取图像格式的 favicon。

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

使用 Picasso 在 imageview 中显示图标。