转自: http://www.r-base.net/archives/442
在Android的UI开发中,如果使用xml的方式来配置layout的话,我们可以很方便地实现不同分辨率的兼容性问题(使用dip的单位来实现).但是,如果在游戏游戏的时候,不能用xml来配置layout,这时候我们去兼容不同分辨率时就会麻烦很多.一些坐标计算也可以将dip的单位改成像素.我在开发打地鼠的游戏时,发现文字不好计算出宽度,经过一段时间的上网查找,终于找到了解决方案.
1
2
3
4
5
6
7
| // 计算出该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之间单位转换