layout、values和drawable屏幕自适应
来源:互联网 发布:约拿情结 知乎 编辑:程序博客网 时间:2024/05/21 23:33
基本概念
in:即英寸,它表示的是屏幕的物理尺寸。1in = 2.54cm,而且我们平时所说的尺寸是指可视屏幕的对角线的长度,并不是屏幕面积。因此,比如我们说一个手机是3.2英尺,也就 是说,它的可视区域的对角线的长度是:3.2*2.54 = 8.128cm。
分辨率:它指的是屏幕垂直方向和水平方向的像素个数。比如分辨率是:480*320,也就是说: 水平方向(宽)有320个像素点。竖直方向(高)有480个像素点。
dpi:像素密度,即dots per inch,指的是每英寸的像素数。如160dpi指手机水平或垂直方向 上每英寸距离有160个像素点。假定设备分辨率为320*240,屏幕长2英寸宽1.5英 寸,dpi=320/2=240/1.5=160。Android中主要有三种像素密度:120,160,240。它就是 DisplayMetrics类中属性densityDpi的值。
density:密度,指每平方英寸中的像素数。计算方式:density=分辨率/屏幕尺寸。在android中,160dpi的密度为1.0,120dpi的密度为0.75,240dpi的密度为1.5。它就是 DisplayMetrics类中属性density的值。
px:即pixel,像素。它在不同设备上的显示效果相同。这里的“相同”指的是像素不会变。第一个问题:比如一个button的宽是100px,那么无论是在120,160,还是240像素密度 的设备上,它的宽都应该显示100px。,比如我们有三个480x320的手机,它的dpi 分 别为:120,160,180。那么此时,如果它在160dpi的手机上显示3厘米,在120dpi的 手机上就会显示(4/3)*3厘米,就比160dpi上显示的要大了,同理,在240dpi上显示的 按钮看起来就更窄了。而这里我们的手机是一样大的,这就出现了不适应屏幕的问题。
由于有上面的问题,android中我们一般就推荐使用dip,而不使用px。
dp:dp是dip的缩写,它是device-independent pixel,即设备独立像素。它是一个与像素密 度和屏幕尺寸都无关的单位。在不同的屏幕上有不同的显示效果。它与像素px的换算 公式为:px = (像素密度/160)*dp。
drawable文件夹有很多个,如drawable-hdpi、drawable-ldpi、drawable-mdpi、drawable-xhdpi,这些文件夹是谷歌公司为屏幕自适应做的准备,意思说各位朋友在做屏幕自适应之前应该准备5套资源图片来出来该问题。相应的比例关系大概是 1 : 0.5 : 0.75 : 1.5 : 2
values文件夹了,同样读者可以看到也是对应的有许多类似文件夹(如果没有手动新建也是可以的),values 、values-large、values-xlarge等,这些文件夹的作用也是为了自适应屏幕大小而准备的。其中重要的一个文件就是dimens。
一般把UI 布局文件放在layout文件夹下,如果要支持橫屏,就会取同名的layout放在layout-land文件夹下。
layout、layout-large、layout-xlarge三个文件夹
在layout-large文件夹下,也新建一个文件命名与layout下的文件同名也叫test.xml,但是该文件的量值应该全部是layout文件夹下量值的1.5倍,这样大屏的适配就基本算是完成了。等到项目在真机上跑起来的时候,安卓系统会根据当前屏幕大小来决定,那一套layout资源在屏幕上显示。如果想划分得更细读者还可以建立多个layout资源文件,在原基准之上添加1.15、1.25、1.35、1.45倍数的layout布局。
(如果还想适应240*320和320*480的话还可以建立layout-small、layout-middle)
参考:
http://www.360doc.com/content/12/1217/13/7857928_254554771.shtml
- layout、values和drawable屏幕自适应
- 自适应屏幕资源drawable和layout文件夹与对应手机分辨率之间的关系
- Android自适应屏幕大小和layout布局
- Android自适应屏幕大小和layout布局
- Android自适应屏幕大小和layout布局
- Android自适应屏幕大小和layout布局
- Android自适应屏幕大小和layout布局 .
- Android自适应屏幕大小和layout布局
- android 适配写法 drawable layout values
- Android自适应屏幕大小和layout布局(横屏|竖屏)
- Android自适应屏幕大小和layout布局(横屏|竖屏)
- Android自适应屏幕大小和layout布局(横屏|竖屏)
- Android自适应屏幕大小和layout布局(横屏|竖屏)
- Android自适应屏幕大小和layout布局(横屏|竖屏)
- Android自适应屏幕大小和layout布局(横屏|竖屏)
- Android自适应屏幕大小和layout布局(横屏|竖屏)
- Android自适应屏幕大小和layout布局(横屏|竖屏)
- 最新res目录讲解(drawable、layout、values等目录的分辨率和layout的横竖屏,以及values的多语言)
- Spring Boot 2.0.0参考手册_中英文对照_Part IV_26
- 【ife】任务三十一:表单(三)联动
- MATLAB*2017/1/9
- Servlet的开发介绍
- 单例设计模模式——懒汉式为什么线程不安全
- layout、values和drawable屏幕自适应
- Mysql免安装版配置【图文版和文字版】
- WPF教程(三十六)UpdateSourceTrigger属性
- 多表查询数据库
- Android学习笔记-Android6.0运行时权限(续)
- 解决Android 7.0 (Android N)中 Android Device Monitor(DDMS)的 File Explorer不显示目录树的问题
- 哈理工OJ 1150 相识(排序后枚举)
- 炉石传说爆牌鱼斩杀算法C语言实现
- bash环境GIT仓库基本操作(1)