android dp与px的相互转换
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);
}
}
Dana.Lee
To:Dana_Lee1016@126.com
浙公网安备 33010602011771号