前言
最近收到一个新的需求,要求在现有的应用上新增大字模式功能。可是因为项目初建的过程中,界面的字体都是用固定的px来设置字体的大小,如果动态配置,重构的话,工作量会很大,所以小钟动用了一点点小聪明来实现应用的大字功能,当然这方案用户体验和效果就没有那么好(最重要是业务大哥能接受)
下面就来介绍一下,本方案分为两部分,分别是原生界面字体的设置和前端界面字体的设置。
原生界面大字模式处理
我们可以直接在项目的BaseActivity的onCreate方法中,放大涉及原生界面的字体,使用下图的方式来处理
不过设置完APP字体的大小之后,要重启APP才会生效。另外如果项目中使用到Dialog、PopupWindow这两种控件得话,需要在控件中重新设置fontScale。
前端界面大字模式处理
在Android原生混合开发的模式中,前端的界面都是用Android系统自带的WebView来作为容器的,所以整体的前端界面要把字体变大,我们可以放大WebView来显示字体变大的效果。
mWebview.getSettings().setTextZoom(int zoom)的方法中里面传整型参数,100代表默认大小,如果要放大,则传入大于100的值,如120表示放大20%,要是传入小于100的值,则会缩小。
总结
切记,原生的放大设置和前端的放大设置最好保持一致。例如原生中的fontScale设置为1.2,那容器中的setTextZoom可以设置为120。
当然以上这两种暴力的设置方式,很可能会导致应用的排版有些错乱,这就要看你们公司愿意付出的时间和成本了,如果追求用户体验和效果,那当然是得重构,谁叫一开始的时候就没有构建到相关的字体设置呢~
2021年11月1日程序猿小钟带着【Android应用新增大字模式】到此一游~
网友评论