博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
屏幕适配 部分知识点总结,CSDN小冰原创
阅读量:6070 次
发布时间:2019-06-20

本文共 1690 字,大约阅读时间需要 5 分钟。

hot3.png

/** * 作者:David Zheng on 2015/11/7 15:38 * * 
网站:http://www.93sec.cc * *
 微博:http://weibo.com/mcxiaobing * * 
微博:http://weibo.com/93sec.cc */ 个人交流QQ986945193
屏幕适配简介(了解)
  • Android的屏幕有大有小,为了对不同大小屏幕的设备提供最好的体验,需要对不同大小的设备进行不同的设计,让他们产生的效果一样的。
  • 进入友盟:   ,专门提供移动端数据统计的网站。查看Android屏幕设备,以及分辨率指数,发现android中的屏幕碎片化太严重。
  • 所以我们只要尽量适配这几种分辨率,就可以在大部分的手机上正常运行了。
屏幕适配中几个重要的概念 ( 记忆 )
  • 什么是屏幕尺寸、屏幕分辨率、屏幕像素密度?
    • 屏幕尺寸:屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米
    • 屏幕分辨率:横纵向上的像素点数,单位是px,1px=1个像素点   (屏幕适配和它没有关系)
    • 屏幕像素密度:每英寸上的像素点数,单位是dpi,即“dot per inch”的缩写。 (屏幕适配和dpi有关系)
  • 什么是dp、dip、dpi、px?他们之间的关系是什么?
    • px:其实就是像素,UI设计、Android原生API都会以px作为统一的计量单位,像是获取屏幕宽高等。
    • dp,dip和dpi:Density Independent Pixels ,也就是密度无关像素。每个英寸上的像素点
  • 什么是mdpi、hdpi、xdpi?如何计算和区分?
    • mdpi (medium-density) :   每个英寸约占160dpi。这个是基准线dpi
    • hdpi (high-density):每个英寸约占240dpi。
    • xhdpi(extra high-density):每个英寸约占320dpi。
    • xxhdpi (extra-extra-high-density ) : 每个英寸约占480dpi
  • 缩放因子:(原理性东西,理解)
    • ldpi : mdpi : hdpi : xhdpi : xxhdpi=3:4:6:8  : 12
    • icon图标的计算:  
      •  基准线是 mdpi,图标为:48*48
      •  ldpi :   0.75*48=36  所以 为  36*36
      •  hdpi:   72*72
      • xhdpi:   96*96
        
屏幕适配的几种方式(理解记忆)
   
  • 图片适配(不是很常用)在res目录下,分别有这些mdpi、hdpi、xdpi、xxdpi 对应的文件夹。
    通过在这些不同的文件夹下,放入不同的图片,不同的手机会自动加载相应的图片,以达到屏幕适配。但是这种不太常用,因为图片比较暂用存储空间,打出来的apk包也会相应的变大。所以一般只用一套主流的图片,或者对各别有问题的图标进行适配。
  • 布局适配(不常用)
    • 比如有一个主流分辨率的手机加载布局后,UI效果很差,我们就可以使用布局适配
    • 语法:大的数字写到前面,小的数字写到后面,中间是x连接
    • 举个栗子:layout-1280x720
    • 没图说个**:
  • dimens适配(尺寸适配)(常用)
    • 不同values下写dimens,以便达到尺寸适配
    • 举个例子:values-1280x720
    • 图片说明:
  • 权重适配(常用)
  • 代码适配(常用)
    • 获得屏幕的宽高
    • 计算出控件所占屏幕的比例
    • 根据比例动态设置控件的宽高
    • 举个例子:
                    //获得屏幕的宽高
                  DisplayMetrics displayMetrics = new DisplayMetrics();   
                  getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
                  int heightPixels = displayMetrics.heightPixels;
                  int widthPixels = displayMetrics.widthPixels;

转载于:https://my.oschina.net/mcxiaobing/blog/647482

你可能感兴趣的文章
使用c:forEach 控制5个换行
查看>>
java web轻量级开发面试教程摘录,java web面试技巧汇总,如何准备Spring MVC方面的面试...
查看>>
根据调试工具看Vue源码之组件通信(一)
查看>>
Thrift RPC 系列教程(5)—— 接口设计篇:struct & enum设计
查看>>
斯坦福-随机图模型-week1.5
查看>>
灵活的运用Model类
查看>>
hadoop 之分布式安装
查看>>
使用ansible工具部署ceph
查看>>
linux系列博文---->深入理解linux启动运行原理(一)
查看>>
Android反编译(一) 之反编译JAVA源码
查看>>
结合当前公司发展情况,技术团队情况,设计一个适合的技术团队绩效考核机制...
查看>>
python-45: opener 的使用
查看>>
cad图纸转换完成的pdf格式模糊应该如何操作?
查看>>
Struts2与Struts1区别
查看>>
网站内容禁止复制解决办法
查看>>
Qt多线程
查看>>
我的友情链接
查看>>
Ubuntu12.04 编译android源代码及生成模拟器经历分享
查看>>
KVM网络桥接设置方法
查看>>
Puppet学习手册:Puppet Yum安装
查看>>