Android——屏幕尺寸

一.屏幕参数

屏幕的大小:就是常说的手机屏幕是几寸的
屏幕的分辨率:例如 小米三分辨率1920×1080 宽上有1080个像素 高上有1920个像素
每英寸的像素:PPI/DPI 对角线的像素点除以屏幕的大小
系统的屏幕密度
官方给出的标准的DPI的值:
密度:ldpi 密度值:120 分辨率:240X320
密度:mdpi 密度值:160 分辨率:320X480
密度:hdpi 密度值:240 分辨率:480X800
密度:xhdpi 密度值:320 分辨率:720X1280
密度:xxhdpi 密度值:480 分辨率:1080X1920
独立像素密度 :dp 这个是我们在布局文件中最常使用的
相同长度的屏幕,高密度的屏幕包含更多的像素点
Android中使用mdpi为标准,1px=1dp hdpi 1dp=1.5px xhdpi 1dp=2px xxhdpi 1dp=3px

二.单位转换

/** * Created by LCY on 2016/3/24. * 实现dp/sp和px之间的转换 */
public class DisplayUtil {
//将px转换为dp
public static int px2dp(Context context,float pxValue){
final float scale=context.getResources().getDisplayMetrics().density;//density就是换算比例
return (int)(pxValue/scale+0.5f);//四舍五入
}
//将dp转换为px
public static int dp2px(Context context,float dpValue){
final float scale=context.getResources().getDisplayMetrics().density;//density就是换算比例
return (int)(dpValue*scale+0.5f);//四舍五入
}
//将px转换为sp
public static int px2sp(Context context,float pxValue){
final float scale=context.getResources().getDisplayMetrics().scaledDensity;//density就是换算比例
return (int)(pxValue/scale+0.5f);//四舍五入
}
//将sp转换为px
public static int sp2px(Context context,float spValue){
final float scale=context.getResources().getDisplayMetrics().scaledDensity;//density就是换算比例
return (int)(spValue*scale+0.5f);//四舍五入
}
}

此外 TypedValue类也可以完成转换

你可能感兴趣的:(android,屏幕尺寸)