屏幕适配备忘录

屏幕尺寸

  • Android实际屏幕的尺寸广义分为四个:小,正常,大,超大(small,normal,large,extra-large)
  • 屏幕密度:屏幕的物理区域内的像素的数量:通常被称为dpi(每英寸点数)
  • Android中的所有实际的屏幕密度分为六个广义的密度,low,medium,high,extra-high,extra-extra-high,and extra-extra-extra-high
  • 方向:从用户的角度来说,分为横向与纵向,即屏幕的宽高比
  • 分辨率:在屏幕上的物理的像素的总数
  • 密度无关像素(即DP):虚拟像素单元,在定义UI布局的时候,此时应当使用密度无关的方式来表示布局尺寸或者位置

[学习网址]http://edu.csdn.net/course/detail/1744/26852?auto_start=1
account:zhaojt_exam

Android屏幕的支持范围:

  • 一组(四种)广义的大小:小,正常,大和超大

  • 一组(六种)广义密度:

    1. ldpi -- 120dpi (AndroidStudio已经取消了)
    2. mdpi -- 160dpi (标准尺度即为1)
    3. hdpi -- 240dpi
    4. xhdpi -- 320dpi
    5. xxhdpi -- 480dpi
    6. xxxhdpi -- 640dpi

    需要注意的是,查找出当前手机的屏幕密度后,Android App会自动的进行靠边(那边比较靠近,就获取那边哪边文件夹的数据,若当前手机的屏幕密度是180,那个他会去获取hdpi即160dpi的文件夹的内容),然后进行处理。

解决图片适配的问题

  • 一张同样大小的图片在不同的屏幕上显示的大小是不一样的
  • ppi(pixel per inch),每英寸的距离像素点的个数,在这里跟dpi的定义是相同的
  • ppi越低,同一张图片显示会越大,相反,ppi越高图片显示的越小
  • 举例,HVGA屏幕320*480,一般为3.5寸,计算点密度(即勾股定理除以对角线即可),(3202+4802)开方/2 = 164,此时Android系统就会找到160的文件夹

解释图片适配的问题(详细可以查看api文档的最佳实践)

  • 创建用于不同密度的可替代的位图,应遵循3:4:6:8:12:16 (即密度配比120:160:240:320:480:640)缩放比例六个广义密度。

  • 官方例子,如果存在一个位图在中等密度文件夹(160dpi)屏幕存在48x48像素的图片,那么在不同的密度的手机下,就会出现

  • 120dpi -- ldpi -- 32x32像素

  • 160dpi -- mdpi -- 48x48像素

  • 240dpi -- hdpi -- 64x64像素

  • 320dpi -- xhdpi -- 96x96像素

  • 480dpi -- xxhdpi -- 144x144像素

  • 640dpi -- xxxhdpi -- 192x192像素

    注意若图片只是存在一幅图,那么如果当前手机密度的文件夹不存在文件,那么就会在其他密度文件中找,若在mdpi文件夹中找到那么若当前手机为xhdpi,此时,该图片就会按照比例来进行放大,此时图片就会失真,反过来,文件存放在高密度的文件夹中,但是手机的密度小,此时,图片就会按照上面的比例缩小到相应的图片。
    那么如果我们将所有的图片文件都放置到高密度的文件夹,即都做高密度的图片,这样就能只做一份图,其他就不用管理,直接让系统缩小就可以了,这种想法可以,但是不符合实际,原因是我们的高清图都是很大的,若使用率很小就会产生安装包过大浪费容量的问题,所以需要分情况来进行存放图片,不能一味就做高分别率的图

屏幕的官方分类

  • 超大屏幕是至少960dp x 720dp
  • 大屏幕是至少640dp x 480dp
  • 正常屏幕是至少470dp x 320dp
  • 小屏幕是至少426dp x 320dp

屏幕适配的测试可以使用百度的MTC来进行测试,减少公司采购真机的成本

原文地址:https://www.cnblogs.com/canceler/p/5191281.html