安卓字体大小适应不同分辨率的解决方案
今天,有人问我安卓系统的分辨率、尺寸不同的手机、字体尺寸如何适应。 其实字体适应和图像适应是一个道理。
一、原理如下。
假设需要支持320 x240,480 x320的分辨率。 在res目录下创建新文件夹values-320x240、values-480x320。 然后在文件夹values中,
在values-320x240和values-480x320下创建了新的xml文件dimens.xml。 此xml文件的内容如下:
vaules-320x240下的dimens.xml内容如下:
18sp
values-480x320下的dimens.xml内容如下:
18sp
对于不同分辨率的手机,安卓系统会自动适应加载到合适文件中的字体大小值,而btnTextSize的值不同。 在布局文件中,引用如下:
Android : layout _ height=' wrap _ content ' Android 3360 gravity=' center '
Android : id=' @ id/LBL set ' style=' @ style/BTN text ' Android 3360 text size=' @ dimen/BTN text size '
在java文件中以这种方式调用。
intsize=(int ) this.getResources ).getdimension(r.dimen.text_size );
这种方法使在不同分辨率下设置字体大小变得更容易。 当然,除了字体大小、宽度、高等其他属性外,还可以用同样的方法设置
二.1.在视图的onsizechanged中获取视图的宽度。 通常,缺省宽度为320,因此计算缩放率
rate=(float ) w/320 w是实际宽度
2 .下次设置字体大小时,paint.settextsize((int ) )8*rate ); 8是分辨率宽度必须设置为320的字体大小
实际字体大小=默认字体大小x速率
Android : layout _ width=' fill _ parent '
Android : layout _ height=' wrap _ content '
安卓: text=' @ string/hello '
Android : text size=' @ dimen/text _ size '
/
布局多分辨率匹配:
感谢您的阅读。 希望对大家有帮助。 感谢您对本网站的支持。