Android 常用限定符

目录

在安卓3.2之下的适配  限定符

android3.2之后引入的,目前推荐使用的;


在安卓3.2之下的适配  限定符

为了适配不同屏幕大小的android手机或android平板,有时候就需要利用限定符来为不同的屏幕设定不同的布局文件。 
android中一些常用的限定符如下所示:

屏幕特性限定符描述
屏幕尺寸small小屏幕
 normal基准屏幕
 large大屏幕
 xlarge超大屏幕
屏幕密度ldpi<=120dpi
 mdpi<= 160dpi
 hdpi<= 240dpi
 xhdpi<= 320dpi
 xxhdpi<= 480dpi
 xxhdpi<= 640dpi(只用来存放icon)
 nodpi与屏幕密度无关的资源.系统不会针对屏幕密度对其中资源进行压缩或者拉伸
 tvdpi介于mdpi与hdpi之间,特定针对213dpi,专门为电视准备的,手机应用开发不需要关心这个密度值.
屏幕方向land横向
 port纵向
屏幕宽高比long比标准屏幕宽高比明显的高或者宽的这样屏幕
 notlong和标准屏幕配置一样的屏幕宽高比

例如:

res/layout/my_layout.xml              // layout for normal screen size ("default")
res/layout-large/my_layout.xml        // layout for large screen size
res/layout-xlarge/my_layout.xml       // layout for extra-large screen size
res/layout-xlarge-land/my_layout.xml  // layout for extra-large in landscape orientation
 
res/drawable-mdpi/graphic.png         // bitmap for medium-density
res/drawable-hdpi/graphic.png         // bitmap for high-density
res/drawable-xhdpi/graphic.png        // bitmap for extra-high-density
res/drawable-xxhdpi/graphic.png       // bitmap for extra-extra-high-density
 
res/mipmap-mdpi/my_icon.png           // launcher icon for medium-density
res/mipmap-hdpi/my_icon.png           // launcher icon for high-density
res/mipmap-xhdpi/my_icon.png          // launcher icon for extra-high-density
res/mipmap-xxhdpi/my_icon.png         // launcher icon for extra-extra-high-density
res/mipmap-xxxhdpi/my_icon.png        // launcher icon for extra-extra-extra-high-density

在一般情况下在layout文件夹下是默认的布局文件,而在大屏幕设备上,这个布局文件可能就不怎么适用了。

因此,我们可以利用限定符large,在res目录下新建一个layout_large文件夹,再新建一个同名的布局文件。 
这样,当程序运行在了大屏幕设备上时,android就会自动地加载layout_large文件夹下的布局文件,其他情况下还是会加载layout文件下的布局文件。

这样,当程序运行在不同屏幕大小的手机上时都可以有比较完美的布局了。

有时候我们也不希望由系统来为我们来判断加载哪个布局,而是希望能够为之设定一个临界值,当屏幕宽度小于临界值时,加载默认布局,当大于时则加载另一个专门准备的布局文件。 
可以在res目录下新建一个文件夹,命名为layout_ sw650dp,再将专门准备的同名布局文件放置在其中。

这样,当程序运行在屏幕大于650dp的设备上时,就会加载layout_ sw650dp文件夹下的布局文件了

android3.2之后引入的,目前推荐使用的;

屏幕特性限定符描述
最小宽度限定符sw<N>dp
例如sw600dp, sw720dp
屏幕的最小尺寸,就是屏幕可用区域的最小尺寸,是指屏幕可用高度或宽度的最小值(你可以默认是屏幕的最小宽度).你能用这个限定符确保,无论屏幕方向如何,这个限定符修饰下的布局需要的屏幕最小尺寸是Ndp.
例如,如果你的布局在运行时需要的最小屏幕宽度是600dp,则你可以利用这个限定符创建布局资源目录res/layout-sw600dp.只有当屏幕的最小宽度或最小高度是600dp时,系统才会使用这些布局文件或者资源文件.最小屏幕宽度是固定设备的特有屏幕尺寸,当屏幕方向发生变化时,设备的最小宽度值不变.
设备的最小宽度值要考虑屏幕的尺寸和系统UI.例如,如果在屏幕上有一些系统持久化UI元素,则系统的最小宽度值要比实现的屏幕尺寸小一些,因为这些系统的UI元素你的应用是无法使用到的.
当你使用之前的广义限定符是,你可以定义连续的一系列限定符.用最小宽度来决定广义屏幕尺寸是有意义的,是因为宽度是影响你UI设计的关键因素.UI在竖直方向上会经常滚动,但是在水平方向上往往是固定的布局.可见不论是适配手机或者平板,宽度往往都是布局的关键因素.因此,你需要关心你手机上的最小宽度值.
屏幕可用宽度w<N>dp
Examples:
w720p
w1024p
指定资源使用时需要的最小宽度.当屏幕方向发生变化时,系统会调整这个值,使其始终为你UI显示的宽度.
这个属性经常被用来判断当前是否需要显示多屏布局,因为哪怕用户当前正在使用平板,你也可能不希望用户在平板竖屏时显示多个屏幕的布局样式.这时,你就可以使用这个限定符来标明你布局需要的最小宽度
屏幕可用高度h<N>dp
Examples:
h720dp
h1024dp
etc.
标明资源使用时需要的最小高度.当屏幕发生旋转时,系统会自动选择当前大的一方作为高度值.大部分应用很少需要这个限定符,因此不做过多讲解

 

在不考虑屏幕方向只关注布局最小空间的前提下,使用sw<N>的方式更加简单.

例如:

res/layout/main_activity.xml #手机布局 
res/layout-sw600dp/main_activity.xml #7寸平板布局 
res/layout-sw720dp/main_activity.xml #10寸平板布局

 

补充:

设备宽度的dp计算方法:

dp = 屏幕像素宽度/(屏幕像素密度/160)   160是基准屏幕像素密度    这个用来计算以上的sw后面的数值

通用公式:

dp = px/(dpi/160)

px = dp*(dpi/160)

参考链接:https://blog.csdn.net/wzy_1988/article/details/52932875 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值