Android用Paint计算文字宽度
来源:互联网 发布:nginx 限制url访问 编辑:程序博客网 时间:2024/06/05 05:10
转自: http://www.r-base.net/archives/442
在Android的UI开发中,如果使用xml的方式来配置layout的话,我们可以很方便地实现不同分辨率的兼容性问题(使用dip的单位来实现).但是,如果在游戏游戏的时候,不能用xml来配置layout,这时候我们去兼容不同分辨率时就会麻烦很多.一些坐标计算也可以将dip的单位改成像素.我在开发打地鼠的游戏时,发现文字不好计算出宽度,经过一段时间的上网查找,终于找到了解决方案.
1234567
// 计算出该TextView中文字的长度(像素)public static float getTextViewLength(TextView textView,String text){ TextPaint paint = textView.getPaint(); // 得到使用该paint写上text的时候,像素为多少 float textLength = paint.measureText(text); return textLength;}
通过上面的代码我们得到文字的像素后,我们可以通过一些算法得计算得到该文字的 dip 单位的值.
关于dip(dp)与px的转换方法可以看我另一篇博文.
Android中dip(dp)与px之间单位转换