屏幕适配

屏幕适配
1.为什要进行屏幕适配?
1.Android的厂商非常多,手机型号多,屏幕尺寸大小不一,屏幕分辨率多,一个控件在不同的设备上显示的效果会有一定的差异

2.是否需要对每一种尺寸的设备进行适配?
  1.主流的Android厂商: google,三星,中兴,华为,酷派,联想,诺基亚,小米,oppo,vivo,锤子,格力,魅族,乐视,一加,360,小辣椒,nubia,lg,金立,摩托罗拉,HTC,sony
  2.主流的屏幕尺寸:3.2 3.5 3.7 4.0 4.3 4.7 5.0 5.1 5.5 6.0 7.2 9.7
  3.主流的屏幕分辨率: 1920*1080 2560*1440 1280*720 1280*768 ....
  4.主流的Android系统版本: 2.3 4.0 4.1 4.3 4.4 5.1 6.0

不需要,只需要适配主流的几种设备

3.Android中的尺寸知识
  1.屏幕的分辨率 表示的是宽度上的点的个数,长度上的点的个数 比如: 1920*1080 表示的是长度上有1920个点,宽度上有1080个点

  2.屏幕的尺寸 表示的屏幕的对角线长度 单位in

  3.屏幕的密度dpi 表示单位in上的像素点的个数

  4.px 表示的是一个点的长度

  5.pt 一个点的长度(绝对长度) 1pt 相当于1/72 英寸,127/360mm。

  6.dp,dip 会自动的根据屏幕的密度来计算px

  7.sp 文本长度,会自动的个根据屏幕的密度来计算文本的大小

4.屏幕适配
  1.图片适配
    1.目录适配

      0.目录介绍
        对应的比例 dpi对应的值范围
        drawable-ldpi 0-120dpi
        drawable-mdpi 4 120dpi - 160dpi
        drawable-hdpi 6 160dpi - 240dpi
        drawable-xdpi 8 240dpi - 320dpi
        drawable-xxdpi 12 ...
        drawable-xxxdpi 16 ...


      1.根据不同的屏幕密度,将图片放在对应的drawable-dpi目录里面,系统会自动根据当前的屏幕密度去对应为文件中找相应的图片,
如果对应的文件中没有,会到更高dpi的文件中找

      2.不需要给每一个范围的dpi文件都适配图片,也不需要给每一张图片进行适配,一般给需要高质量的图片定义4-5套图片进行适配,(比如: 程序logo,背景)

    2.尽量使用可以拉伸的图片(9.png, png)
      1.规则的图片
      2.颜色单一的图片

  2.布局适配
    1.在线性布局中使用weight属性,该属性可以让控件按照一定的比例划分屏幕,不受屏幕的大小,分辨率影响,始终按照比例划分
    弊端: 只能用在线性布局上,需要空间按比例划分的时候才可以使用 (适配的角度上,建议使用线性布局)

    2.在代码中适配,先可以获得当前设备的宽,高,以及显示设备的参数, 可以动态的设置控件的宽高
    弊端: 代码量大,布局复杂, 不建议使用

    3.按照布局文件所在的文件位置来适配(在不同的屏幕状态下自动的去对应的文件夹中找) 3.按照分辨率进行适配

布局文件的适配,如下:

 

控件长度的适配:(就不直接在布局中写dp啥的单位了)

 

语言的国际化:

 

dp为密度
px为像素点

 

在Android中,规定以160dpi为基准,1dip=1px,如果密度是320dpi,则
1dip=2px,以此类推。

 

 

 

名称 像素密度范围
mdpi 120dpi~160dpi
hdpi 160dpi~240dpi
xhdpi 240dpi~320dpi
xxhdpi 320dpi~480dpi
xxxhdpi 480dpi~640dpi

 

res/layout-large/main.xml 系统会在属于较大屏幕(例如 7 英寸或更大的平板电脑)的设备上选择此布局。系统会在较小的屏幕上选择其他布局(无限定符)。

 

res/layout-sw600dp/main.xml    对于最小宽度大于等于 600 dp 的设备,系统会选择 layout-sw600dp/main.xml布局,否则系统就会选择layout/main.xml

 

 

posted @ 2016-09-15 16:15  ts-android  阅读(264)  评论(0编辑  收藏  举报