我有一个应用程序,基本上只是加载一个网站来显示这些信息。在网站中,我有一个iframe,可以加载事件日历。
在电脑上浏览网站(通过chrome),事件日历看起来完全是它应该的样子(是的,我知道字体太小了)。
通过android应用程序在firetv上查看站点,iframe(事件日历)中的字体大小会放大。
我注意到,在firetv中,当分辨率为1920x1080
时,实际的显示分辨率为960x540
(将浏览比例缩小到同样的效果)@seeScreen Size and Resolution
铬合金图像(显示正确)
FireTV网络视图(不正确)
我也读过一些关于字体增强的文章,最初我认为这是一个问题,但是我已经消除了这个问题,因为没有一种技术可以“禁用”它(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");