在安卓平台上,适配是必不可少的,现在不只要适配手机,还要适配多种分辨率的平板,下面讲几点我遇到的状况 1,屏幕适配的方法 四种屏幕尺寸分类::java
- small
- normal
- large
- xlarge
其中对应手机的尺寸以下布局
- layout-small(屏幕尺寸小于3英寸左右的布局)
- layout-normal(屏幕尺寸小于4.5英寸左右)
- layout-large(4英寸-7英寸之间)
- layout-xlarge(7-10英寸之间)
四种密度分类:code
- ldpi (low)
- mdpi (medium)
- hdpi (high)
- xhdpi (extra high)
通常状况下的普通屏幕:orm
- ldpi是120
- mdpi是160
- hdpi是240
- xhdpi是320
- xxhdpi是480。 须要根据dpi值准备5套图片资源,
- drawable
- drawalbe-ldpi
- drawable-mdpi
- drawable-hdpi
- drawable-xhdpi <font color=#0099ff>(这个不是必须,不少公司只用一套或者两套)</font> 通常按照以下来获取屏幕的像素和密度:
DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metric); int width = metric.widthPixels; // 屏幕宽度(像素) int height = metric.heightPixels; // 屏幕高度(像素) float density = metric.density; // 屏幕密度(0.75 / 1.0 / 1.5) int densityDpi = metric.densityDpi; // 屏幕密度DPI(120 / 160 / 240)
另外屏幕密度能够本身计算:如5.5英寸,1920*1080的屏,先计算斜边:1920²+1080²开根号=2202再除以5.5,屏幕密度为400,大于320则被归一化到480xxhdpi的队列队列
分辨率适配 layout-1920*1080, 也可按照最小宽度和高度来分: layout-sw600dp(通常用来适配7inch平板) layout-sw720dp(10 inch左右平板)图片
若是要适配一样大小,不一样分辨率的平板,怎么办呢?如19201080 和1280720都是8英寸的平板 有的人说能够经过分辨率来区分,但是若是仅仅是分辨率, layout-1920*1080即有多是手机,也有多是平板资源
其实此时,只要将上面的条件组合起来, 组合适配 如layout-xlarge-mdpi和layout-xlarge-hdpiget
dimens适配 这种适配是我如今用的最多的一种适配,只须要在不一样的dimens下设置不一样的长度单位,layout中全部的margin padding 及width height等都引用dimens下的值便可 分别建议本身想适配的类型values文件夹 it
每一个文件夹下都新建一下dimensclass
- 在手机的dimens文件中
<dimen name="main_camera_setting_tab_margin_15px">5dp</dimen>
- 在pad的dimens文件中
<dimen name="main_camera_setting_tab_margin_15px">10dp</dimen>