Android适配总结

来源:互联网 发布:软件开发项目生命周期 编辑:程序博客网 时间:2024/05/29 08:01

在安卓平台上,适配是必不可少的,如今不仅要适配手机,还要适配多种分辨率的平板,下面讲几点我遇到的情况
1,屏幕适配的方法
四种屏幕尺寸分类::

  • small
  • normal
  • large
  • xlarge
    其中对应手机的尺寸如下
  • layout-small(屏幕尺寸小于3英寸左右的布局)
  • layout-normal(屏幕尺寸小于4.5英寸左右)
  • layout-large(4英寸-7英寸之间)
  • layout-xlarge(7-10英寸之间)

四种密度分类:

  • ldpi (low)
  • mdpi (medium)
  • hdpi (high)
  • xhdpi (extra high)

一般情况下的普通屏幕:

  • ldpi是120
  • mdpi是160
  • hdpi是240
  • xhdpi是320
  • xxhdpi是480。
    需要根据dpi值准备5套图片资源,
  • drawable
  • drawalbe-ldpi
  • drawable-mdpi
  • drawable-hdpi
  • drawable-xhdpi
    (这个不是必须,很多公司只用一套或者两套)
    一般按照如下来获取屏幕的像素和密度:
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左右平板)

如果要适配同样大小,不同分辨率的平板,怎么办呢?如1920*1080 和1280*720都是8英寸的平板
有的人说可以通过分辨率来区分,可是如果仅仅是分辨率,
layout-1920*1080即有可能是手机,也有可能是平板

其实此时,只要将上面的条件组合起来,
组合适配
如layout-xlarge-mdpi和layout-xlarge-hdpi

dimens适配
这种适配是我现在用的最多的一种适配,只需要在不同的dimens下设置不同的长度单位,layout中所有的margin padding 及width height等都引用dimens下的值即可
分别建议自己想适配的类型values文件夹
这里写图片描述

每个文件夹下都新建一下dimens

  • 在手机的dimens文件中
<dimen name="main_camera_setting_tab_margin_15px">5dp</dimen>
  • 在pad的dimens文件中
<dimen name="main_camera_setting_tab_margin_15px">10dp</dimen>
0 0