千锋大数据开发学院UI布局和初级控件的使用( 五 )


1、规则:通过指定最小宽度来确定屏幕要加载的布局资源
2、操作实现:比如600dp宽度以上的屏幕使用另外一种布局 , 则将新的布局放在res/layout-sw600dp目录中 。
3、特点:sw意为small width的缩写 , 但是并不区分方向 , 也就是说无论宽度还是高度 , 只要大于ndp , 就采用swxxxdp中的布局 。
C、布局别名
1、来源:布局别名是为了解决前文所述的3.2版本之前和3.2版本之后的不同适配方案 。 3.2之前使用尺寸限定符将大尺寸屏幕布局放在layout-large文件目录中;3.2之后使用最小宽度限定符将大尺寸屏幕布局放置在layout-swXXXdp目录中 。
2、缺点:两个文件内容一致 , 但为了适配版本 , 会造成维护成本的增加 。
3、解决方案:引入布局别名 , 通过引用来实现不同界面的适配 。
举例main.xml布局文件 , 对应的适配文件为main_twopanes.xml文件 。

  • values-large/layout.xml:定义layout的item , 并引用main_twopanes.xmlvalues-swXXXdp/layout.xml:定义layout的item , 并引用main_twopanes.xml
D、屏幕方向
1、使用场景:根据屏幕的方向进行布局的调整
2、操作方法:
  • 在layout目录中定义屏幕方向上要展示的布局文件 , 往往是多个(常见于2个) 。 根据屏幕尺寸、方向等 , 使用布局别名进行适配 。
二、“布局组件”的屏幕适配
在使用了正确的UI布局文件的情况下 , 还要保证界面上布局内的各个组件的展示效果能够达成统一的美观效果展示 。
1、在设置控件的宽度、高度等尺寸时 , 使用wrap_conent、match_parent、weight来控制视图组件的宽度和高度 。
2、禁止使用具体的尺寸数据来硬编码指定控件的尺寸 。 px 。 如果dp
3、涉及到控件间的相对位置 , 空隙 , 间隔等具体的距离时 , 尺寸的单位使用dp , 禁止使用px像素单位 。
三、“图片组件”的屏幕适配
为了让图片在不同尺寸和分辨率的手机上展示的效果能够一致 , 专门对图片做适配 。
1、在准备应用布局中使用的图标或者icon时 , 设计提供多套供不同分辨率手机显示的图标文件 , 分别放置在drawable-ldpi、drawable-dpi、drawable-xdpi、drawable-xxdpi、drawable-xxxdpi目录当中 。
2、对于需要匹配不同屏幕大小 , 需要适配控件的尺寸大小的情况 , 可以使用.9图来实现 。 例如:某个按钮 , 有一个背景图 , 该按钮大小不固定 。 此时如果设置固定尺寸的图片 , 会被拉伸 , 则需要使用.9图 。
3、.9图的格式:.9图意为可以自动拉伸的位图 , 其后缀名为file.9.png , 是一种被特殊处理的png图片 , 设计时可以指定图片的拉伸区域和非拉伸区域 。 .9图设置一套即可 , 放置在res目录中的drawable中即可被引用使用 。
四、“文字控件“的适配设置
在应用开发过程中 , 涉及到设置UI布局中的文字字体的展示 , 一律使用单位sp进行表示 。 推荐使用偶数如12sp、14sp、16sp、18sp等等字体大小 。
五、"语言"适配
1、方法:把UI中的字符串存储在外部文件 , 通过代码提取 , 存放在res/values/strings.xml文件中 。
2、支持多种语言 , 在res中创建额外的values目录 , 通过连字符和iso国家代码为目录名称 。 如:values-en代表的是英文 , values-jp代表的是日语 。
转自:知乎Davie