在构建布局文件时,自然会涉及像素问题.在Android中有dp,px,dip等几个单位,其中常用的是dip.
dip的设置与分辨率无关,在默认情况下,LDPI的密度是120,系数为0.75;MDPI的密度为160系数为1.0;HDPI的,密度为240,系数为1.5.XHDPI的密度为320,系数为2.0所谓密度就是单位平方英寸中含像素的数量.
px(像素) 与dip的关系如下:
px = (int) (dip*density+0.5f)
在具体的实现中,屏幕的密度被称为scale,px和dip的转换过程如下:
public void scale(float scale){
x = (int)(x*scale+0.5f);
y = (int)(y*scale+0.5f);
if(width>0){
width = (int)(width *scale+0.5f);
}
if(height>0){
height= (int)(height*scale+0.5f);
}
}