查看 Android 系统版本使用率和设备屏幕市场分布情况:
资源文件夹命名和匹配规则
** 命名方法和要求:**
- 命名不分大小写(推荐全部小写);
- 命名形式:资源名-属性 1-属性 2-属性 3…
资源名:drawable、values、layout、anim、raw、menu、color、animtor、xml 等;
属性名见:Android guidle 限定符表格。** 这里要注意限定符必须按照表格规定的排序,否者编译无法通过**
- 举个栗子:
1 | values-mcc310-en-sw320dp-s720dp |
其中:mcc310:(sim 卡运营商)、en(语言)、sw320dp(屏幕最小宽度)、w720dp(屏幕最佳宽度)、h720dp(屏幕最佳高度)、large(屏幕尺寸)、long(屏幕长短边模式)、port(横屏竖屏显示模式)、car(dock 模式)、night(白天夜间模式)、ldpi(屏幕最佳 dpi)、notouch(触摸屏类型)、keysexposed(键盘类型)、nokey(硬按键类型)、navexposed(方向键时候可用)、nonav(方向键类型)、v7(版本类型)
屏幕适配总结方法
使用
wrap_content
、match_parent
、weight
属性;
** 关于android:layout-weight
属性计算公式:实际所占宽度=原来设置宽度+剩余空间所占百分比的宽度**使用相对布局
RelativeLayout
,禁用AbsolutalyLayout
布局;使用限定符,如上上 2 大点所示;
** 使用限定符时,必须对 View 的存在性做检测,否者会报RuntimeException
**
** 如果存在多个相同布局,则可以使用布局别名的方式加载布局文件**使用.9.png 图片:满足各个方向的拉伸和内容区域的不变;
使用百分比布局方式。以一个基准屏幕尺寸为准,计算不同屏幕尺寸的 px 值,然后设置 values-屏幕大小的限定符,并且在布局文件中使用对应的基准尺寸即可,系统会自动找寻最佳的匹配 px 值;
使用备用图片:mdpi(160dpi)、hdpi(240dpi)、xhdpi(320dpi)、xxhpi(640dpi)
** dpi 计算方式:屏幕的长宽各自的平方和开根号,然后除以屏幕尺寸(inch)**单双面板的情况下,一种判断方式:
1 | View articleView = findViewById(R.id.article); |
- 使用 google 官方的百分比布局 lib:Android-percent-support:
PercentRelativeLayout/PercentFrameLayout
,支持的属性有:
1 | layout_widthPercent、layout_heightPercent、 |
- 使用
Android AutoLayout
库,定义一个基准的屏幕 size,然后直接在布局中使用 px 作为尺寸单位,该库会自动根据当前设备的屏幕尺寸和基准设置屏幕尺寸计算合适的适配尺寸值;Android Studio 依赖方式:
1 | dependencies { |
- xml 布局中使用 dp 作为主讲的长宽尺寸单位,使用 sp 作为字体的大小单位;