我有一个应用程序,基本上只是加载一个网站来显示这些信息。在网站中,我有一个iframe,可以加载事件日历。
在电脑上浏览网站(通过chrome),事件日历看起来完全是它应该的样子(是的,我知道字体太小了)。
通过android应用程序在firetv上查看站点,iframe(事件日历)中的字体大小会放大。
我注意到,在firetv中,当分辨率为1920x1080时,实际的显示分辨率为960x540(将浏览比例缩小到同样的效果)@seeScreen Size and Resolution
铬合金图像(显示正确)
android - Android WebView iFrame字体缩放-LMLPHP
FireTV网络视图(不正确)
android - Android WebView iFrame字体缩放-LMLPHP
我也读过一些关于字体增强的文章,最初我认为这是一个问题,但是我已经消除了这个问题,因为没有一种技术可以“禁用”它(html * {max-height: 99999999px},等等)。
我觉得问题似乎在于我在android应用程序中调用webview的方式以及正在应用的设置。我几乎可以肯定我遗漏了一些可以解决这个问题的东西。以下是我对webview设置所做的:

mWebView = (WebView) findViewById(R.id.activity_main_webview);
WebSettings webSettings = mWebView.getSettings();

webSettings.setJavaScriptEnabled(true);
webSettings.setMediaPlaybackRequiresUserGesture(false);
webSettings.setUseWideViewPort(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setSupportZoom(true);
webSettings.setDefaultFontSize(12);
mWebView.setInitialScale(1);

编辑1:
好吧,我发现不仅仅是iframe在放大,而且是firetv上的所有内容(这显然是一个特性)。它们的显示分辨率(dp)为960x540。似乎没有办法制作1920x1080,但当我通过Rise Vision的“我的Rise播放器”应用程序显示iframe时,一切看起来都很正常。
他们是如何在FireTV上显示1920x1080的?
如果Rise Vision的开发团队中有人愿意对我发表评论并指出正确的方向,我将不胜感激!

最佳答案

解决办法相当简单。我只需要将这些值设置为100

mWebView.getSettings.setTextZoom(100);
mWebView.setInitialScale(100);

感谢@altskop帮我找到了正确的方向
对于那些想知道代码其余部分的人,这里是:
WebView mWebView = (WebView) findViewById(R.id.activity_main_webview);
WebSettings webSettings = mWebView.getSettings();

mWebView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(WebView view, String url) {
        Log.d(TAG, "Finished Loading.");
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
});

webSettings.setJavaScriptEnabled(true);
webSettings.setMediaPlaybackRequiresUserGesture(false);
webSettings.setTextZoom(100);

mWebView.setInitialScale(100);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.loadUrl("http://your.url.com");

07-26 02:15