Android适配不同的屏幕

http://jingyan.baidu.com/article/624e745948a78a34e8ba5abf.html

Android将设备屏幕归类为两种常规属性:尺寸和分辨率。你应该想到你的app会被安装在各种屏幕尺寸和分辨率的设备中。这样,你的app就应该包含一些可选资源,针对不同的屏幕尺寸和分辨率,来优化你的app外观。

有4种普遍尺寸:小(small),普通(normal),大(large),超大(xlarge)

4种普遍分辨率:低精度(ldpi), 中精度(mdpi), 高精度(hdpi), 超高精度(xhdpi)

声明针对不同屏幕所用的layout和bitmap,你必须把这些可选资源放置在独立的目录中,与你适配不同语言时的做法类似。

同样要注意屏幕的方向(横向或纵向)也是一种需要考虑的屏幕尺寸变化,所以许多app会修改layout,来针对不同的屏幕方向优化用户体验。

工具/原料

  • Android studio

创建不同的layout

  1. 1

    为了针对不同的屏幕去优化用户体验,你需要对每一种将要支持的屏幕尺寸,创建唯一的XML文件。每一种layout需要保存在相应的资源目录中,目录以-<screen_size>为后缀命名。例如,对大尺寸屏幕(large screens),一个唯一的layout文件应该保存在res/layout-large/中。

  2. 2

    例如,这个工程包含一个默认layout和一个适配大屏幕的layout:

    Android适配不同的屏幕
  3. 3

    layout文件的名字必须完全一样,为了对相应的屏幕尺寸提供最优的UI,文件的内容不同。

    按照惯例在你的app中简单引用:

    Android适配不同的屏幕
  4. 4

    系统会根据你的app所运行的设备屏幕尺寸,在与之对应的layout目录中加载layout。更多关于Android如何选择恰当资源的信息.

    另一个例子,这一个工程中有为适配横向屏幕的layout:

    Android适配不同的屏幕
  5. 5

    默认的,layout/main.xml文件用作竖屏的layout。

    如果你想给横屏提供一个特殊的layout,也适配于大屏幕,那么你需要使用large和land修饰符。

    Android适配不同的屏幕
    END

创建不同的bitmap

  1. 1

    你应该为4种普遍分辨率:低,中,高,超高精度,都提供相适配的bitmap资源。这能帮助你在所有屏幕分辨率中都能有良好的画质和效果。

  2. 2

    要生成这些图像,你应该从原始的矢量图像资源着手,然后根据下列尺寸比例,生成各种密度下的图像。

    xhdpi: 2.0

    hdpi:  1.5

    mdpi:  1.0 (基准)

    ldpi:  0.75

  3. 3

    这意味着,如果你针对xhdpi的设备生成了一张200x200的图像,同样的你应该为hdpi生成150x150,为mdpi生成100x100, 和为ldpi生成75x75的图片资源。

    然后,将这些文件放入相应的drawable资源目录中:

    Android适配不同的屏幕
  4. 4

    任何时候,当你引用@drawable/awesomeimage时系统会根据屏幕的分辨率选择恰当的bitmap。

    END
经验内容仅供参考,如果您需解决具体

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值