Android屏幕适配

一:Android中的一些术语:

  1:Screen Size 屏幕尺寸:实际的物理尺寸,以屏幕的对角线为准;

屏幕尺寸分为:small,normal,large,xlarge分别表示小,中,大,超大屏

  2:Resolution 分辨率:在屏幕上的像素总数,在支持多个屏幕时,应用程序不直接与分辨率相关,应用程序应该只与屏幕大小和密度相关。

  3:Density 屏幕密度:表示单位面积内的像素个数,通常用dpi为单位,即每英寸多少个像素点,屏幕密度分为:ldpi,mdpi,hdpi,xhdpi,它们的标准值分别是:120dpi,160dpi,240dpi,320dpi;

Android中常见的一些单位:

    px(像素):屏幕上的点,绝对长度,与硬件相关。

    in(英寸):长度单位。

    mm(毫米):长度单位。

    pt(磅):1/72英寸,point。

    dp(与密度无关的像素):一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。

    dip:Density-independent pixel,同dp相同。

    sp:Android中标准的表示字体的大小;

屏幕尺寸界线 : 屏幕的尺寸是按照dp计算的, dp越大, 尺寸越大;

   small(小屏) : 最少 320dp * 426dp;

   normal(普通) : 最少 320dp * 470dp;

   large(大屏) : 最少 480dp * 640dp;

   xlarge(超大) : 最少 720dp * 960dp;yi

112530_HFmQ_2471295.png

二:布局文件layout自适应;

 Android系统根据屏幕物理尺寸的大小,准备了5套布局,来适应各种大小的布局不失真问题,

    layout(放一些通用布局xml文件,比如界面中顶部和底部的布局,不会随着屏幕大小变化,类似windos窗口的title bar),

    layout-small(屏幕尺寸小于3英寸左右的布局);

    layout-normal(屏幕尺寸小于4.5英寸左右);

    layout-large(4英寸-7英寸之间);

    layout-xlarge(7-10英寸之间)

三:Drawable文件自适应;

    Android根据dip值,准备了5套图片资源,用来适应不同大小的手机;

res/drawable-xhdpi:超高分辨率的图片,至少960 X 720;

res/drawable-hdpi:高分辨率的图片,如WVGA(480 X 800)、FWVGA(480 X 854);

res/drawable-mdpi:中等分辨率的图片,如HVGA(320 X 480);

res/drawable-ldpi:低分辨率的图片;如QVGA(240 X 320);

res/drawable:主要存放xml文件和分辨率要求低的图片;

四:value

    Android在资源文件values用文件名的方式提供了限定符可以帮助我们判断上述情况,限定符(mdpi,tvdpi,hdpi)可以帮助我们判断屏幕密度,限定符(land,port)可以帮助我们区分屏幕横竖屏状态,而限定符(1024x600...)可以适配计算虚拟键或者不计算虚拟键的屏幕;

values

values-hdpi

values-land-hdpi-1024x552

values-land-hdpi-1024x600

values-land-hdpi-1280x800

values-land-mdpi-1024x552

values-land-mdpi-1024x600

values-land-mdpi-1024x720

values-land-mdpi-1280x800

values-land-tdpi-1280x720

values-mdip

values-hdpi

values-port-hdpi-1024x600

values-port-hdpi-1280x800

values-port-mdpi-1024x552

values-port-mdpi-1024x600

values-port-mdpi-1024x720

values-port-mdpi-1280x800

values-port-tdpi-1280x720

注意1:

        分辨率限定符的匹配是向下匹配,如果没有values-land-mdpi-1024x552,比如,分辨率values-land-mdpi-1024x600的屏幕,当rom不把虚拟键计算到屏幕尺寸时,实际显示的屏幕应该是values-land-mdpi-1024x552,无法适配到values-land-mdpi-1024x600,那这样就可能适配到下一级,比如values-land-mdpi-800x480,但是现在的平板已经没有这么低的分辨率了,所以是配到无限定符的values-mdpi里,造成界面显示上的瑕疵。

注意2:

        由于分辨率限定符的匹配是向下匹配,所以如果有mdpi屏幕不能精确适配到上述指定值时,values-mdpi至少可以保证app运行时不至于崩溃,同理values可以保证ldpi屏幕的平板不会因生成view而又取不到相应值而崩溃。


转载于:https://my.oschina.net/u/2471295/blog/511450

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值