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)
如何分辨一个屏幕是ldpi、mdpi、hdpi的方法,见下图
计算屏幕密度
2、怎样适配多种屏幕
a.在manifest里定义你的程序支持的屏幕类型,相应代码如下:
<supports-screens android:resizeable=["true"| "false"]
android:smallScreens=["true" | "false"] //是否支持小屏
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两个目录,里面分别放置竖屏和横屏两种布局文件,以适应对横屏竖屏自动切换。
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。
不同密度的屏幕对应的图片比例
3、多屏幕适配的4条黄金原则
a.在layout文件中设置控件尺寸时应采用wrap_content,fill_parent和dp。
具体来说,设置view的属性android:layout_width和android:layout_height的值时,wrap_content,fill_parent或dp比pix更好。相应地,为了使文字大小更好的适应屏幕应该使用sp来定义文字大小。
b.在程序的代码中不要出现具体的像素值。
为了使代码简单,android内部使用pix为单位表示控件的尺寸,但这是基于当前屏幕基础上的。为了适应多种屏幕,android建议开发者不要使用具体的像素来表示控件尺寸。
c.不要使用AbsoluteLayout(android1.5已废弃) 。相应地,应使用RelativeLayout。
d.对不同的屏幕提供合适大小的图片。见上面第2部分。
4、需要注意的地方
以上设置适用于android3.2以下的版本。(本人目前开发是在android2.2上,这部分以后再补充)
5、怎样测试你的程序是否支持多屏幕适配
一般使用AVD Manager创建多个不同大小的模拟器,如下图
6、参考文档:http://developer.android.com/guide/practices/screens_support.html
转自:http://www.androidlearner.net/android-multi-screen-about.html
分享到:
相关推荐
在Android开发中,多屏幕适配是一个至关重要的环节,因为Android设备有着广泛的屏幕尺寸和分辨率。为了确保应用程序在各种设备上都能提供良好的用户体验,开发者必须理解并掌握屏幕适配的相关技术。以下是一些核心...
总之,Android autolayout通过其灵活的约束系统,让开发者能够创建高度自适应的界面,从而简化了多屏幕适配的难题。结合Fragment、ListView和GridView的使用,开发者可以构建出更加复杂且具有高度适应性的应用程序,...
A low-cost Android screen adaptation solution (今日头条屏幕适配方案终极版,一个极低成本的 Android 屏幕适配方案). Overview Pixel 2 XL | 1440 x 2880 | 560dpi: Pixel XL | 1440 x 2560 | 560dpi: ...
"Android屏幕适配"是Android开发中的核心概念,它涉及到尺寸单位、布局权重、资源多版本、比例适配以及使用百分比布局等多种技术。 1. 尺寸单位: - dp (density-independent pixels):与设备像素密度无关的像素...
综上所述,Android UI适配涉及多个层面,包括理解屏幕尺寸和密度,使用适配策略,以及充分利用各种布局工具。只有全面考虑这些因素,才能确保应用在各种设备上都能呈现出一致且优秀的用户体验。
在Android应用开发中,屏幕适配是一个至关重要的环节,因为Android设备有着各种不同的屏幕尺寸和分辨率。本资源包"Android屏幕适配资源"专注于解决这一问题,提供了values资源,能够帮助开发者轻松实现不同屏幕尺寸...
【Android屏幕适配方案终极版】是Android开发者面临的一个重要课题,尤其是在当今各种设备尺寸繁多的情况下。今日头条作为一款广受欢迎的信息聚合应用,其屏幕适配策略无疑具有很高的参考价值。这个低成本的解决方案...
在Android开发中,屏幕适配是一项至关重要的任务,因为Android设备有着广泛的屏幕尺寸和分辨率,从小型手机到大型平板电脑不一而足。一个良好的屏幕适配方案能够确保应用程序在不同设备上显示一致且用户体验良好。...
### Android多屏幕适配及样式设计开发指导书 #### 一、引言 随着移动互联网技术的发展,Android设备种类繁多,不同的品牌、型号、屏幕尺寸以及分辨率等特性导致了多屏幕适配成为Android开发中的一项重要挑战。本文...
在Android开发中,屏幕适配是一项重要的工作,尤其是在面对各种尺寸和分辨率的设备时。"android屏幕适配px工具类"就是为了解决这一问题而设计的,它可以帮助开发者更方便地处理像素(px)单位转换,确保应用在不同...
android屏幕适配方法
在Android应用开发中,多屏幕适配是一项至关重要的任务,因为Android设备的屏幕尺寸和分辨率各异,从手机到平板电脑,甚至是智能电视,都可能运行同一个应用。`NewsReader Android UI多屏幕适配代码`这个主题就是...
在Android开发中,多屏幕适配是一个至关重要的环节,因为Android设备有着各种不同的屏幕尺寸和分辨率,这使得应用需要能够自适应各种显示环境。本文将深入探讨如何利用Android的工具和资源来实现高效的多屏幕适配。 ...
研究了以前同事留下的适配方案和网神hongyang大牛提供的方案,特整理了两套完美的android屏幕适配工具类,和详细的使用demo,可以根据px适配,也可以根据dp适配。适配原理可参考hongyang的博客,若还不会或者不会用...
Android屏幕适配生成文件
本资源“安卓UI布局相关-Android多屏幕适配.rar”可能包含了多种针对不同屏幕尺寸和密度的解决方案。 1. **Android屏幕尺寸分类** Android系统将屏幕分为小、正常、大、超大四种尺寸类别,以及低、中、高、超高四...
在Android开发中,屏幕适配是一项重要的任务,因为Android设备有着广泛的屏幕尺寸和分辨率。"smallestWidth"(sw)适配策略是Android系统提供的一种智能解决方案,它允许开发者为不同大小的屏幕创建不同的资源文件夹...
Android dimens sw 屏幕适配文件 values-sw300dp values-sw310dp values-sw320dp values-sw330dp values-sw340dp values-sw350dp values-sw360dp values-sw370dp values-sw380dp values-sw390dp values-sw400dp ...
总的来说,"Android屏幕字体适配源码"旨在解决Android应用在多分辨率设备上的显示问题,通过合理的尺寸和字体适配策略,确保应用在不同屏幕尺寸和分辨率的设备上都能呈现出良好的视觉效果。通过深入理解并实践这些...