天天看点

android 多屏幕适配 : 第一部分

1、在xml布局文件中,控件的宽度和高度用  dp ;   字体大小用 sp

2、根据屏幕的宽高来动态的适配 , 获取屏幕的宽高的两种方法:

    第一种方法:

    这种方法会报警告,The method getWidth() from the type Display is deprecated

    意思是这种方法已经过时,所以建议用第二种方法:

第二种方法:

注意:1、在 Java 代码中获取的宽度和高度,以 px (像素) 为单位。 与xml 文件中的 dp 不一样 。

         2、经过测试,用两种方法分别获取手机屏幕的宽度和高度,得到的结果是一样的 。

              我的手机是小米1 ,480 x 854  px

3、通常情况下,一个 layout 布局文件里面的控件的大小,有两种设置控件宽高的 方法 。

    一种是在 xml 中设置 , 如果一个控件在 xml 中有定义,控件的宽度和高度用  dp ;   字体大小用 sp 。

    另外一种 就是在java 代码中动态设置 。

4、因为在 xml 布局中 单位是 dp , 在 java 代码中 的单位是 px 。

    为了两者的大小保持一致,所以需要将两者进行换算 。

  DensityUtil 类

5、由于android 的屏幕大小有很多中,分辨率也是多种多样的 。

   为了准确的获取屏幕的高度和宽度,需要在AndroidManifest.xml 中加入 supports-screens 节点 。

继续阅读