安卓手机系统设置字体大小后与APP以及web端字体大小问题
最近在做一些有关html和App的一些混合式开发,在测试过程中发现,android手机系统设置了字体大小,app应用中和web服务端的页面(也就是html界面)字体都会有变化。下面我就在这次开发者中遇到的相关问题进行一个小小的总结。
1.情况发生,设置系统字体之后的前后对比
是不是发现字体变化还是很大的呢!
web端html和入app中,有些会出现兼容问题,有些机子并不会出现兼容问题。实际开发中,对于android的同学来说,只要有超过三种有这种问题就需要进行解决这个问题。小编在网络上找了很多的资料,发现,网络就是一个大杂烩,什么都有,但是有用的却很少,如何解决这个问题呢?其实并没有那么麻烦。
2.问题研究
1)app中字体大小不随着系统设置字体大小而改变是很容易的,但是需要确定您之前已经做过兼容测试,您的布局不会有兼容问题,也就是默认的系统设置的时候,也就是字体放大倍数为1.0的时候,不会有布局问题
这个时候只需要加入两行代码就能够轻松的解决这个问题,这个也是百度中就可以找到的。这里小编也只是做了一个代码的搬运工
//防止字体被从新设置
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
displayMetrics.scaledDensity = displayMetrics.density;
小编并不喜欢重复操作,所以我直接在环境类中加入了代码,代码如下
public class MyApplication extends YTBaseApplication {
@Override
public void onCreate() {
super.onCreate();
//防止字体被从新设置
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
displayMetrics.scaledDensity = displayMetrics.density;
CrashHandler.getInstance().init(this);
init();
}
是不是恨简单呢!
2)web端界面放入APP兼容问题
查了一些相关资料,发现都写的比较麻烦,并且不能够解决相关的问题,还好小编之前有做过web端html界面App兼容,顾发现,并没有百度回答的那么麻烦
从理论角度想就是你设置字体大小就是把当前的html界面字体的放大缩小倍数,顾我们只需要让我们的webview这个view’控制html的放大倍数为1.0,很多人知道也就是默认的大小就行,具体代码如何写呢!
WebSettings webSettings = webView.getSettings();
webSettings.setTextZoom(100);
是不是发现其实超级简单呢!
希望本人的这篇文章对大家有用。未来的日子一起努力。