在安卓运用中,配置距离的时候用dp后者px都可以,一般情况下在xml中用dp的时间很多,但是在代码中设置参数的时候,传入的参数却是px。dp的设置跟手机没有关系,固定的dp在每台分辨率不同的手机都显示距离是一样的,所以一般也用dp作为一个固定的设置。
px: 像素点,比如1080*1920的屏幕,就是宽1080个像素点和高1920个像素点。
dpi: 像素密度, 是每一英寸屏幕的像素数量.关于他的计算方法(以1080*1920的5英寸屏幕为例):屏幕的对角线像素数/屏幕的尺寸 √(1080*1080+1920*1920)/5=441dpi。
dp:也叫dip设备无关像素。 1dp的概念是,1英寸的尺寸下有160个像素时,1dp = 1px。 也就是 如果你的手机像素密度是320dpi(一英寸有320个像素点)时, 1dp = 2px。
dp和px之间的转换。
public class DensityUtil { /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); } /** * 根据手机的分辨率从 px(像素) 的单位 转成为 dp */ public static int px2dip(Context context, float pxValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); } }