首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

Android Training - 支持不同的尺码

2012-08-24 
Android Training - 支持不同的尺寸Android设备屏幕根据两个属性分类:尺寸和密度。你应该期望你的程序被安

Android Training - 支持不同的尺寸
Android设备屏幕根据两个属性分类:尺寸和密度。你应该期望你的程序被安装在合理的尺寸和密度范围内。例如,你应该针对不同的尺寸和密度提供可选择的资源,让你的程序能有好的展现。这里有四个常用的尺寸:small, normal, large, xlarge四个常用的密度:low(ldpi), medium(mdpi), high(hdpi), extra high(xhdpi)为了能够在不同的屏幕中显示不同的样式和位图,你必须保存不同的资源在独立的目录中,和前面说的不同语言字符串类似。
还要注意的是,不同的屏幕方位(风景或者肖像)被指定为不同的屏幕尺寸。所以很多程序需要修订样式以便在不同方位都能有好的用户体验。
创建不同的样式为了在不同的屏幕尺寸下有好的用户体验,你必须为每个你想支持的屏幕尺寸创建一个唯一的XML样式文件。每个样式保存在对应的以-<screen_size>为后缀的资源目录中。例如,一个large屏幕的样式目录为res/layout-large/。
提示:Android会自动缩放你的样式,以便合适的填充屏幕。因此,你不用担心不同尺寸屏幕下UI元素的决定尺寸,而是要更多关注样式结构对用户体验的影响(比如相对于相邻view的尺寸和位置)。
例如,下面这个工程包含默认的样式和一个可选择的large屏幕样式:

MyProject/    res/        layout/            main.xml        layout-large/            main.xml
文件名必须是相同的,但是内容是不同的,它为不同的屏幕尺寸提供对应的UI。
在程序中简单引用样式文件:
MyProject/    res/        layout/            main.xml        layout-land/            main.xml
默认的layout/main.xml文件被使用在肖像(竖屏)方位。
如果你为风景方位和large屏幕提供一个特别的样式,你需要使用large和land两个限定符:
MyProject/    res/        layout/              # default (portrait)            main.xml        layout-land/         # landscape            main.xml        layout-large/        # large (portrait)            main.xml        layout-large-land/   # large landscape            main.xml
提示:Android3.2以及更高版本支持一种更加先进的定义屏幕尺寸的方法,允许你基于最小宽高去指定资源文件,这个课程不包括这种新技术,想了解请移步到:Designing for Multiple Screens.
创建不同位图你通常提供不同的位图资源去适应不同的密度:low, medium, high, extra-high。这样能帮助你在不同屏幕密度中取得好的绘图质量和性能。
为了生成这些图像,你需要从原始的矢量格式开始,采用下面的尺寸缩放生成对应密度的图片:xhdpi: 2.0hdpi: 1.5mdpi: 1.0ldpi: 0.75意思就是说,如果你生成一个200x200的图片给xhdpi设备,你就需要生成相同的资源给其他设备,hdpi是150x150, mdpi是100x100, ldpi是75x75。
然后,把它们放到对应的绘图资源目录中:
MyProject/    res/        drawable-xhdpi/            awesomeimage.png        drawable-hdpi/            awesomeimage.png        drawable-mdpi/            awesomeimage.png        drawable-ldpi/            awesomeimage.png
任何时候你调用@drawable/awesomeimage,系统会根据屏幕密度选择合适的位图。
提示:ldpi资源通常不是必须的,当你提供hdpi资源时,系统会缩放一半去适应ldpi屏幕。
更多关于创建程序图标资源的教程,看这里:Iconography design guide.

热点排行