在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上有所不同所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)