有人知道如何用缩略图制作网页书签吗?请告诉我如何获取当前书签网站的缩略图或屏幕截图..
这是我想学习的小部件..
这仅适用于 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_URI
of获取所需的任何图像BrowserContract
,将其附加到图像、缩略图等的 URI并运行您的查询/插入。
我认为对于缩略图,您将链接放在 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 上即可