在安卓平臺上,適配是必不可少的,現在不只要適配手機,還要適配多種分辨率的平板,下面講幾點我遇到的狀況 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>