android不同屏幕大小支持

屏幕概念

 

l  屏幕尺寸:

物理上的大小,以屏幕对角线为准。

为了方便起见,android将屏幕大小分为四个级别(small,normal,large,and extra large)。

l  屏幕密度

特定物理尺寸大小内像素点的数量,通常使用dpi(dots per inch)。密度越低,单位尺寸内像素点越少。

为方便起见,android将实际的屏幕密度分为四个通用尺寸(low,medium,high,and extra high)。

l  方向

屏幕的方向是用户看见视图的方向。默认的设备的方向默认是不一定相同的,用户在程序运行时是可以改变方向的,例如转动设备。

l  分辨率

一个屏幕总共的像素点。当添加多屏幕支持时,应用不直接对分辨率操作,应用只要考虑屏幕大小和密度。

l  密度无关的像素(Density-independent pixel——dp)

是一种虚拟的像素单位,当你定义layout时应该使用这种单位。

详细解释:密度无关的像素相当于一个160dpi屏幕上的一像素,这个是medium级别屏幕的一个基准。运行时根据实际的屏幕密度来转化这种单位。

公式:px = dp * (dpi /160)

例如:在240 dpi的屏幕上,1dp等于1.5个物理像素。当你定义应用的UI时应该经常使用dp单位,保证你的UI适合地显示在不同的屏幕上。

 

支持的屏幕范围

android 1.6以后支持多种屏幕的大小和密度,反映出一个设备可以有多种屏幕的硬件配置。你可以使用android的这个特点改进用户体验达到最好的用户体验效果。

四个广义上的尺寸(small,normal,large,and xlarge)。

3.2以后这种定义被弃用

四种屏幕密度( ldpi (low), mdpi (medium),hdpi (high),and xhdpi (extra high))

 

最基本的android屏幕大小和密度的是根据normal级大小和medium级别密度定义的。来源于最早的T-mobile G1,使用HVGA屏幕,当时的android只有这一种屏幕配置。

每一种屏幕大小和密度都代表着一种范围,例如,都是normal级别的两种屏幕,长宽比例也相同,但是手动测量时存在细微的差距。都是hdpi级别的屏幕可能真实px大小也存在差异。android将这些做了一些抽象,这样你可以为大多屏幕大小的设备提供UI设计。

 

android为这四类屏幕的大小和尺寸的分组

 

屏幕级别的最低配置

l  xlarge     960dp x 720dp

l  large      640dp x480dp

l  normal    470dp x 320dp

l  small      426dp x 320dp

 

为应对这种情况,android提供了可选资源,在运行时,android根据屏幕大小和密度选择资源。你不需要为每种界面组合都提供可选资源,android本身提供了强大的功能。

 

密度的独立性

提供不同密度的图片资源。不提供的话,一张图在低分辨率的显示器上会变大,高分辨率的显示器上会变小。

为使得密度的独立性,使用dp定义或者wrap_content。

 

怎样提供多屏幕支持

l  明确指明你使用的屏幕大小是多少

l  为不同的屏幕提供不同的layout

l  为不同的屏幕提供不同的bitmap

 

方法:

使用文件进行配置

<qualifier>标签

 

在android目录中一般的目录结构

src/ 

        MyActivity.java 

    res/

        drawable/ 

            icon.png 

        layout/ 

            main.xml

            info.xml

        values/ 

            strings.xml 

 

在添加可选资源的时候设定文件夹的名字

<resources_name>-<config_qualifier>

<resources_name>目录的名字

<config_qualifier>需要配置的名字

可以有多个配置,中间用横线分隔

 

例如:

res/
    drawable/   
        icon.png
        background.png    
    drawable-hdpi/  
        icon.png
        background.png 

hdpi指明的是资源在目录中是为高密度的屏幕设计的。虽然资源的名字是相同的,但是android在使用时会自动寻找最适合的进行使用。

 

注意:使用多个属性时要按顺序添加。有一定的优先级。(Table  2)

http://developer.android.com/guide/topics/resources/providing-resources.html#table2

例:port 立着的手机

land 横着的手机

 

car 有底座的模式

desk

 

有几条规则:

l  可以有多个属性

l  属性必须按照表2的顺序添加

l  文件夹的名字不可以嵌套

l  文件夹名字都是小写的,如果你写成大写也会被在运行时转换为小写

l  每个属性的值只能有一个,例如添加两个国家支持,只能是添加两个文件夹,不可以写在一起。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值