屏幕适配
dp 和 sp
dp与像素无关, Android系统允许用户自定义文字尺寸大小(小、正常、大、超大等等),当文字尺寸是“正常”时,1sp=1dp=0.00625英寸,而当文字尺寸是“大”或“超大”时,1sp>1dp=0.00625英寸。类似我们在windows里调整字体尺寸以后的效果——窗口大小不变,只有文字大小改变。
Android 布局文件适配
Android 分辨率
如果在不同的分辨率上布局文件不一致,我们可以在res目录下,新建一个文件夹,如:layout-1080x720 数值大的在前面
Android使用最小宽度限定符
Android开发中最头疼的问题之一就是兼容不同尺寸和分辨率的设备。在使用最小宽度限定符时这个最小宽度的该如何计算。
最小宽度限定符可以使用一个与屏幕像素密度无关为单位(dp)的数值区分出的不同设备,以应用不同的资源。
如下图中values-sw600dp的sw表示最小宽度,那么600dp是如何确定的呢?
举个例子:一般情况下我们可以容易知道设备的分辨率和尺寸的参数。比如现在有平板A(分辨率1280720px,尺寸是8inch), 手机B(分辨率19201080px,尺寸是5.7inch),手机C(分辨率1280*720px,尺寸是5inch)。通过下面的屏幕像素密度的计算公式,我们可以分别计算出他们的屏幕像素密度:
平板A约为184dpi,手机B约为386dpi,手机C约为293dpi。
接下里需要注意的是,最小宽度是不考虑横屏或竖屏的,也就是说最小宽度是设备屏幕四条边里最短的那两条边。
如果需要考虑横竖屏那么可以加入屏幕方向限定符,这不在我们讨论之列。那么接下来我们取最短边的像素数,并通过下面的公式计算最小宽度(dp): 平板A约为626dp,手机B约为448dp,手机C约为393dp。
Android Studio 插件
在Android Studio插件市场,我们可以找到ScreenMatch
来自动生成dimen.xml文件。
本文链接:https://jxiaow.gitee.io/posts/9233ed3f/
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!