Android-屏幕分辨率学习

一、Android 屏幕尺寸、px、dpi、dip、sp

参考:https://blog.csdn.net/m0_37828249/article/details/79061899

  • 屏幕尺寸:指屏幕的对角线长度,单位是英寸,1英寸等于2.54厘米,常见尺寸有2.4,2.8,3.5,3.7,4.2,5.0,5.5,6.0等。

  • 屏幕分辨率px:指在纵横向上的像素点数,单位是px,1px为一个像素点,一般格式为纵向像素横向像素,如1960×1080。

  • 屏幕像素密度dpi:相同尺寸情况下,分辨率越高,屏幕越清晰,即屏幕像素密度越大。屏幕像素密度指每英寸上面的像素点个数,单位是dpi,是“dot per inch”的缩写,计算方式:dpi = px / 尺寸

  • 密度无关像素dip:单位dip或dp,是Density Independent Pixels的缩写,Android规定,在屏幕像素密度为160dpi的情况下,1dp=1px。而在像素密度为320dpi的情况下,1dp=2px,以此类推。计算公式:1dp=(像素密度/160dpi)*1px。

  • sp:全称cale-independent pixels,与dp类似,用于设置字体大小。

  • 设置布局时,使用dp和sp(字体),不要直接使用px,这样才能保证屏幕适配。

dp的范围划分:

名称像素密度范围
mdpi120dpi ~ 160dpi
hdpi160dpi ~ 240dpi
xhdpi240dpi ~ 320dpi
xxhdpi320dpi ~ 480dpi
xxxhdpi480dpi ~ 640dpi

二、DisplayMetircs

参考:https://blog.csdn.net/zhangqijie001/article/details/5894872

手机的分辨率信息是手机的一项重要信息,Android 提供DisplayMetircs 类可以很方便的获取分辨率。

Andorid.util 包下的DisplayMetrics 类提供了一种关于显示的通用信息,如显示大小,分辨率和字体。

为了获取DisplayMetrics 成员,首先初始化一个对象如下:

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

注:构造函数DisplayMetrics 不需要传递任何参数;调用getWindowManager() 之后,会取得现有Activity 的Handle ,此时,getDefaultDisplay() 方法将取得的宽高维度存放于DisplayMetrics 对象中,而取得的宽高维度是以像素为单位(Pixel) ,“像素”所指的是“绝对像素”而非“相对像素”。

三、自定义属性从资源文件获取长度

getDimension()
getDimensionPixelSize()
getDimensionPixelOffset()

getDimension()、getDimensionPixelSize()和getDimenPixelOffset()的结果值都是将资源文件中定义的dip值乘以屏幕密度,getDimension()返回的是float,其余两个返回的是int, 其中getDimensionPixelSize()返回的是实际数值的四舍五入,而getDimensionPixelOffset返回的是实际数值去掉后面的小数点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值