0

有人知道如何用缩略图制作网页书签吗?请告诉我如何获取当前书签网站的缩略图或屏幕截图..

这是我想学习的小部件..
在此处输入图像描述

4

2 回答 2

1

这仅适用于 ICS+:

浏览器 API 正在按照 Contacts API 进行修改,现在书签链接到 Accounts 并且还具有文件夹结构。据我所知,新的 Internals 尚未通过公共 API 调用公开,并且所有实现都可能会更改将来,如果您使用内部 API,您的应用程序可能会停止工作。尽管如此,了解 android 浏览器提供商的内部运作还是值得的:

BrowserProvider2. 现在,缩略图在不同的表中,并且有自己的URI。但在内部,他们将数据放在 images 表中,这也有一个URI

查看新Bookmarks 表Thumbnails 表Images 表的结构。然后,看看书签是如何被插入的:

此外,BrowserContract是否将这些列定义为ImageColumns这些商店、缩略图、网站图标和触摸图标等。

最后,query()匹配 IMAGES(没有 id,url 是主键)和THUMBNAILS(有 id)。

因此,从这里您可以使用 new CONTENT_URIof获取所需的任何图像BrowserContract,将其附加到图像、缩略图等的 URI并运行您的查询/插入。

于 2012-11-27T06:54:50.990 回答
0

我认为对于缩略图,您将链接放在 webView 上并将 webView 保存在位图下。然后你把位图保存在 SD 卡上,你就有了你的缩略图。

你可以得到这样的书签:

Cursor mCur  = ActivityChooseBookmark.this.getContentResolver().query(android.provider.Browser.BOOKMARKS_URI,
                        projection, Browser.BookmarkColumns.BOOKMARK, null, null);

使用它从 webView 获取您的位图:

public static Bitmap getBitmapFromView(View view) {
        Bitmap returnedBitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(),Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(returnedBitmap);
        Drawable bgDrawable = view.getBackground();
        if (bgDrawable!=null) 
            bgDrawable.draw(canvas);
        else 
            canvas.drawColor(Color.TRANSPARENT);
        view.draw(canvas);
        return returnedBitmap;
    }

现在只需将其保存在 SD 上即可

于 2012-11-26T09:38:44.527 回答