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类也可以完成转换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值