字体大小在iOS和Android上有所不同

字体大小在iOS和Android上有所不同,第1张

概述在Android上的网络视图中,我加载了一个包含HTML5画布的html文件.将文字写入画布时,它非常小.如果我在PC浏览器或IOS上的Web视图中加载相同的html文件,则看起来正确.据我所知,我已禁用缩放功能,并且画布正在填充整个Web视图.我希望字体大小与在其他浏览器中加载时的字体大小相同.有

在Android上的网络视图中,我加载了一个包含HTML5画布的HTML文件.将文字写入画布时,它非常小.如果我在PC浏览器或IOS上的Web视图中加载相同的HTML文件,则看起来正确.据我所知,我已禁用缩放功能,并且画布正在填充整个Web视图.我希望字体大小与在其他浏览器中加载时的字体大小相同.有任何想法吗?

在HTML文件的开头,视口声明为:

<Meta name='vIEwport' content='target-densitydpi=device-dpi,initial-scale=1.0,user-scalable=no'/>

在HTML文件的正文中,画布声明为:

<canvas ID='rtmc_canvas' style='position:relative; left:0px; top:0px;'/>

页面加载后,我会动态调整画布以填充屏幕.

解决方法:

您将密度设置为1.0,并以这种特定方式声明视口时,告诉AndroID的WebVIEw根本不缩放任何内容.您可以删除该视口声明,这将导致图像以及字体缩放,或者可以基于用户在其上运行应用程序的AndroID设备来修改WebVIEw的文本大小设置.我假设您想做后者.

您首先需要计算设备的密度.您可以使用以下代码来做到这一点:

float density = getResources().getdisplayMetrics().density;

然后,您可以调整浓度的字体大小.

如果密度为1.0,则其为中等密度(mdpi),> = 1.5为高密度(hdpi),而== 2.0为超高密度(xhdpi).

如果您使用的是ICS,则它具有用于WebVIEw的不错的API:

webVIEw.getSettings().setTextZoom(100 * density);

如果使用的是ICS之前的设备,则必须使用if / else语句检查上面的密度,然后使用:

if (density < 1.5) {    // mdpi:    webVIEw.getSettings().setTextSize(WebSettings.TextSize.norMAL);} else if ((density >= 1.5) && (density < 2.0)) {    // hdpi:    webVIEw.getSettings().setTextSize(WebSettings.TextSize.LARGER);} else {    // xhdpi:    webVIEw.getSettings().setTextSize(WebSettings.TextSize.LARGEST);}

或者更好的是,可以通过检查Build.VERSION.SDK_INT将这两者都包装在ICS / else之前的ICS中.

以下是有关密度的更多信息:http://developer.android.com/guide/practices/screens_support.html

总结

以上是内存溢出为你收集整理的字体大小在iOS和Android上有所不同全部内容,希望文章能够帮你解决字体大小在iOS和Android上有所不同所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1084744.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存