gpt4 book ai didi

android - 如何在 WallpaperService 中设置 webview 的大小?

转载 作者:行者123 更新时间:2023-11-30 02:06:48 26 4
gpt4 key购买 nike

我正在尝试将 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com