[转]android – 多屏幕适配相关
1、基本概念
屏幕大小(screen size)?– 屏幕的实际大小,用屏幕对角线长度来衡量(比如3.4寸,3.8寸)。android把屏幕分为以下4种:small,normal,large,extra large。
怎么判断?
屏幕密度(Screen Density) -??一块实际的屏幕区域有多少个像素,一般用dpi衡量(每英寸有多少个点)。相比起medium、high屏幕密度的设备,在一块确定大小的屏幕区域l密度为low的屏幕拥有的像素更少。android把屏幕密度分为4种:low,medium,high,extra high。
如何判断是ldpi,mdpi,hdpi?
方向(orientation) -??屏幕方向分为landscape(横屏)和portrait(竖屏)。
分辨率(Resolution)?-??屏幕上的总实际像素数。对屏幕进行适配时,一般不关注它的分辨率,只关注它的屏幕大小和密度。
与密度无关的像素(Density-independent pixel,dp或dip)?-??为了保证你的UI适合不同的屏幕密度,建议你采用dp来定义程序UI。
它的计算方法为:px = dp * (dpi / 160)
sp(scale-independent pixel)
![[转]android – 多荧屏适配相关](http://img.reader8.net/uploadfile/jiaocheng/2014018/2601/201401261001346202.png)
如何分辨一个屏幕是ldpi、mdpi、hdpi的方法,见下图
android:normalScreens=["true" | "false"]? //是否支持中屏
android:largeScreens=["true" | "false"]?? //是否支持大屏
android:xlargeScreens=["true" | "false"] ?//是否支持超大屏
android:anyDensity=["true" | "false"]??? //是否支持多种不同密度的屏幕
android:requiresSmallestWidthDp=”integer”
android:compatibleWidthLimitDp=”integer”
android:largestWidthLimitDp=”integer”/>
b.对不同大小的屏幕提供不同的layout。
??????比如,如果需要对大小为large的屏幕提供支持,需要在res目录下新建一个文件夹layout-large/并提供layout。当然,也可以在res目录下建立layout-port和layout-land两个目录,里面分别放置竖屏和横屏两种布局文件,以适应对横屏竖屏自动切换。
![[转]android – 多荧屏适配相关](http://img.reader8.net/uploadfile/jiaocheng/2014018/2601/201401261001346203.jpg)
c.对不同密度的屏幕提供不同的图片。
应尽量使用点9格式的图片,如需对密度为low的屏幕提供合适的图片,需新建文件夹drawable-ldpi/,并放入合适大小的图片。相应的,medium对应drawable-mdpi /,high对应drawable-hdpi/,extra high对应drawable-xhdpi/。
图片大小的确定:low:medium:high:extra high比例为3:4:6:8。举例来说,对于中等密度(medium)的屏幕你的图片像素大小为48×48,那么低密度(low)屏幕的图片大小应为36×36,高(high)的为72×72,extra high为96×96。
6、参考文档:http://developer.android.com/guide/practices/screens_support.html
?
转自:http://www.androidlearner.net/android-multi-screen-about.html