Android 电视上的全分辨率 WebView

Full resolution WebView on Android TV

在 1080p 模拟器和智能电视 (nVidia Shield) 上,我只能获得 960x540 WebView。是否可以使用可用的整个分辨率?

使用 Android 电视的 HDTV 被视为具有 2x 像素比的 960x540px 显示器。不确定如何识别 4k 电视,但要使用所有像素,请检查 window.devicePixelRatio .

我正在寻找同一问题的答案,但我可以确认以下内容。

1080p 电视测试

每个设备在设置中配置为仅使用 1080p 60Hz

Amazon Firestick 在所有测试的浏览器中获得 960 x 540 像素。

Shield TV 在所有测试的浏览器中获得 960 x 540 像素。

新的 Amazon Fire TV Cube 在所有测试的浏览器中获得 960 x 540 像素。

4K 电视测试

Amazon Firestick(不兼容 4K)在所有测试的浏览器中获得 960 x 540 像素。

Shield TV(输出设置为 4K 60Hz)在所有测试的浏览器中获得 960 x 540 像素。

新的 Amazon Fire TV Cube(输出设置为 4K 60Hz)在所有经过测试的浏览器中获得 960 x 540 像素。

更奇怪的是,1080p 和 4K 都测试报告的像素比 是 2。我至少希望在 4K

上看到 960x540 上的像素比为 4

我使用连接到 PC 的电视来显示大量状态数据表。 当充分利用 70 英寸 4K 电视显示数百种不同的信息时,它是一件美丽的事情。

然后你得到一个 Nvidia Shield,因为它是“4K”,并发现浏览器以 960 x 540 呈现,并且在 4K 下看起来很棒的页面看起来像块状的难以辨认的垃圾。

这是我在 Android 电视 28 中所做的 我的应用原始分辨率是 1080p

JS代码:

document.body.style.zoom = 1/window.devicePixelRatio

您可以根据需要使用 WebView#setInitialScale 来缩放网站。要获得想要的比例,您可以使用代码:

Point metrics = new Point();
((WindowManager) context.getSystemService(WIDNOW_SERVICE)).getDisplay(metrics);
int scale = (int) (((double) metrics.x) / 3840/*SCREEN_WIDTH*/ * 100);

您不应设置其他设置,如 setUseWideViewPort,因为它可以 overwrite/ignore 缩放设置。