您的位置:首页 > 移动开发 > Android开发

Android屏幕适配全攻略

2018-02-09 21:12 183 查看
1.“布局”匹配
(1)本质1:使得布局元素自适应屏幕尺寸使用相对布局(RelativeLayout),禁用绝对布局(AbsoluteLayout)由于绝对布局(AbsoluteLayout)适配性极差,所以极少使用。RelativeLayout布局的子控件之间使用相对位置的方式排列,因为RelativeLayout讲究的是相对位置,即使屏幕的大小改变,视图之前的相对位置都不会变化,与屏幕大小无关,灵活性很强,LinearLayout无法准确地控制子视图之间的位置关系,只能简单的一个挨着一个地排列。(2)本质2:根据屏幕的配置来加载相应的UI布局应用场景:需要为不同屏幕尺寸的设备设计不同的布局做法:使用限定符作用:通过配置限定符使得程序在运行时根据当前设备的配置(屏幕尺寸)自动加载合适的布局资源尺寸(size)限定符使用场景:当一款应用显示的内容较多,希望进行以下设置:在平板电脑和电视的屏幕(>7英寸)上:实施“双面板”模式以同时显示更多内容在手机较小的屏幕上:使用单面板分别显示内容因此,我们可以使用尺寸限定符(layout-large)通过创建一个文件res/layout-large/main.xml来完成上述设定:让系统在屏幕尺寸>7英寸时采用适配平板的双面板布局反之(默认情况下)采用适配手机的单面板布局最小宽度(Smallest-width)限定符通过指定某个最小宽度(以 dp 为单位)来精确定位屏幕从而加载不同的UI资源使用场景你需要为标准 7 英寸平板电脑匹配双面板布局(其最小宽度为 600 dp),在手机(较小的屏幕上)匹配单面板布局解决方案:您可以使用上文中所述的单面板和双面板这两种布局,但您应使用 sw600dp 指明双面板布局仅适用于最小宽度为 600 dp 的屏幕,而不是使用 large 尺寸限定符。sw xxxdp,即small width的缩写,其不区分方向,即无论是宽度还是高度,只要大于 xxxdp,就采用次此布局例子:使用了layout-sw 600dp的最小宽度限定符,即无论是宽度还是高度,只要大于600dp,就采用layout-sw 600dp目录下的布局使用布局别名屏幕方向(Orientation)限定符使用场景:根据屏幕方向进行布局的调整

2.布局组件”匹配

本质:使得布局组件自适应屏幕尺寸做法:使用"wrap_content"、"match_parent"和"weight“来控制视图组件的宽度和高度

3.“图片资源”匹配

本质:使得图片资源在不同屏幕密度上显示相同的像素效果做法:使用自动拉伸位图:Nine-Patch的图片类型假设需要匹配不同屏幕大小,你的图片资源也必须自动适应各种屏幕尺寸使用场景:一个按钮的背景图片必须能够随着按钮大小的改变而改变。使用普通的图片将无法实现上述功能,因为运行时会均匀地拉伸或压缩你的图片解决方案:使用自动拉伸位图(nine-patch图片),后缀名是.9.png,它是一种被特殊处理过的PNG图片,设计时可以指定图片的拉伸区域和非拉伸区域;使用时,系统就会根据控件的大小自动地拉伸你想要拉伸的部分。

4.”用户界面流程“匹配

使用场景:我们会根据设备特点显示恰当的布局,但是这样做,会使得用户界面流程可能会有所不同。例如,如果应用处于双面板模式下,点击左侧面板上的项即可直接在右侧面板上显示相关内容;而如果该应用处于单面板模式下,点击相关的内容应该跳转到另外一个Activity进行后续的处理。本质:根据屏幕的配置来加载相应的用户界面流程做法:进行用户界面流程的自适应配置:(1)确定当前布局(2)根据当前布局做出响应(3)重复使用其他活动中的片段(4)处理屏幕配置变化
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android屏幕适配