import android.content.Context; /** * Created by Administrator on 2017/10/12. */ public class DesnityUtil { /** * dp是虚拟像素,在不同的像素密度的设备上会自动适配,比如: 在320x480分辨率,像素密度为160,1dp=1px 在480x800分辨率,像素密度为240,1dp=1.5px 计算公式:1dp*像素密度/160 = 实际像素数 ppi的运算方式是: PPI = √(长度像素数² + 宽度像素数²) / 屏幕对角线英寸数 dp:Density-independent pixels,以160PPI屏幕为标准,则1dp=1px, dp和px的换算公式 : dp*ppi/160 = px。比如1dp x 320ppi/160 = 2px。 */ /** * 像素转dp * @param px * @param context * @return */ public static int px2dp(int px, Context context){ float density = context.getResources().getDisplayMetrics().density; return (int)(px/density+0.5f); } /*** * dp转像素 * @param dp * @param context * @return */ public static int dp2px(int dp,Context context){ float density = context.getResources().getDisplayMetrics().density; return (int)(dp*density+0.5f); } }