屏幕适配 部分知识点总结,CSDN小冰原创
2016-05-31 00:00
567 查看
/** * 作者:David Zheng on 2015/11/7 15:38 * *
网站:http://www.93sec.cc * *
微博:http://weibo.com/mcxiaobing * *
微博:http://weibo.com/93sec.cc */ 个人交流QQ986945193
屏幕适配简介(了解)
Android的屏幕有大有小,为了对不同大小屏幕的设备提供最好的体验,需要对不同大小的设备进行不同的设计,让他们产生的效果一样的。
进入友盟:http://www.umeng.com/ ,专门提供移动端数据统计的网站。查看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;
网站:http://www.93sec.cc * *
微博:http://weibo.com/mcxiaobing * *
微博:http://weibo.com/93sec.cc */ 个人交流QQ986945193
屏幕适配简介(了解)
Android的屏幕有大有小,为了对不同大小屏幕的设备提供最好的体验,需要对不同大小的设备进行不同的设计,让他们产生的效果一样的。
进入友盟:http://www.umeng.com/ ,专门提供移动端数据统计的网站。查看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;
相关文章推荐
- Android Studio出现:Your project path contains non-ASCII 错误代码解决方法
- 遍历查找集合或者数组中的某个元素的值 java代码 详解 Android开发
- 欢迎使用CSDN-markdown编辑器
- Android开发工程师面试题之handler详解。android程序员,android开发面试资料,详解
- Android开发之TextView中间设置横线,适用于电商项目,商品原价之类的功能。
- android开发之动画的详解 整理资料 Android开发程序小冰整理
- android开发之使edittext输入弹出数字软键盘。亲测可用。手机号登陆注册常用。
- Android开发之dp转像素,像素转换为dp工具类,详细代码,带有源文件下载地址。
- Android开发之Eclipse与Android Studio的java类 作者版权模板
- Android中的Activity四种启动模式(launchMode)
- 获取android手机的屏幕分辨率 android开发
- Android开发之java代码工具类。判断当前网络是否连接并请求下载图片
- android studio 如何进行格式化代码 快捷键必备
- android开发之java的一些基础知识详解,java编程语法,扎实自己的android基本功
- android开发之gridView的一些属性。(项目经验总结)
- 如何安装CRX格式?Chrome插件离线安装,CRX格式安装方法 JSON-handle Chrome插件下载
- Android开发之http网络请求返回码问题集合。
- fragment没有getWindowManager 关于fragment下的报错解决方法
- Android开发值利用Intent进行put传值,setclass启动activity,并用get进行取值
- linux命令行模式下实现代理上网 专题