我正在尝试将 webview 设置为动态壁纸,但我在调整它的大小时遇到了问题。
在引擎中,我使用 WallpaperService 的上下文创建了一个 webview:
public WallpaperEngine(Context context) {
webView = new WebView(context);
...
}
然后我将它绘制到墙纸的 Canvas 上:
SurfaceHolder holder = getSurfaceHolder();
Canvas canvas = null;
try {
canvas = holder.lockCanvas();
if (canvas != null) {
webView.draw(canvas);
}
} finally {
if (canvas != null)
holder.unlockCanvasAndPost(canvas);
}
但是墙纸将是白色的并且 javascript 报告窗口的大小是 0px。
如何设置WebView的大小?
最佳答案
通过使用 WindowManager、在 LayoutParams 中定义大小并将 WebView 可见性更改为 GONE 解决了这个问题。
webView = new WebView(context);
webView.setVisibility(webView.GONE);
webView.loadUrl("http://example.com/");
wm = (WindowManager)context.getSystemService(WINDOW_SERVICE);
params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
PixelFormat.TRANSLUCENT
);
params.width = //width
params.height = //height
wm.addView(webView, params);
关于android - 如何在 WallpaperService 中设置 webview 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30556091/