今天翻译的内容链接如下:http://developer.android.com/training/basics/supporting-devices/screens.html
我不会一字一句的为大家翻译,只会调重要点给大家呈现,若要获取全部内容,请大家自行阅读官网文档,thx!
===============================================================================================================
屏幕尺寸和密度可以分别分为四类:
尺寸:小、正常、大、超大。(small, normal, large, xlarge)
密度:低、普通、高、超高。{ low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi) }
这里有个思考题:如何区别四类屏幕尺寸以及四类密度呢? 这里先买个关子,我想文档肯定会解释的,这篇没有讲述而已,我将后续为大家 更新。
(一) 创建不同布局
layout + -<screen_size>例如:layout-large layout-land
下面是官网给的sample :
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
注意:3.2及以上SDK支持指定资源的最小宽高,单位是dip,想看更多资料,移步此处。
(二) 创建不同图片
图片资源的大小要成比例,四种密度呈如下对应关系:
xhdpi:2.0
hdpi: 1.5
mdpi: 1.0(基准)
ldpi: 0.75
也就是说:xhdpi中的图大小为200*200,那么hdpi中的应为150*150,mdpi中的为100*100,ldpi中的图为75*75。
MyProject/ res/ drawable-xhdpi/ awesomeimage.png drawable-hdpi/ awesomeimage.png drawable-mdpi/ awesomeimage.png drawable-ldpi/ awesomeimage.png如果你在XML中引用了这张图@drawable/awesomeimage
,
系统会以屏幕的密度来加载合适的图片。
注意:ldpi文件夹不用总是放资源,当你提供了hdpi资源时,系统会自动帮你把图片尺寸缩小一半来适配低密度屏幕。也就是除以2。(你们该骂我了吧? 这货是在考验我们的智商?)