android适配_相关概念和应用
2014-08-22 15:28
309 查看
有几个概念以及相关公式先理解下:
1、dp:device independent pixels(设备独立像素),是像素和密度的比
dp = px / density
2、dpi(dot per inch每英寸的点数)和ppi相等,是屏幕对角线的像素数和屏幕尺寸的比例
dpi = ppi = (√(screenHeight^2 + screenWidth^2)) / 屏幕大小(inch)
3、密度是dpi和160的比例
density = dpi / 160
4、英寸是相许和dpi或ppi的比例
inch = px / dpi = px / ppi
适配,按自己理解的只有以下两种情况(有不同见解可以补充)
先看第一种情况(屏幕宽度相同,分辨率不同)
1、一款分辨率是480 * 800的手机,宽 480,高800,高度一般会受虚拟键等的影响,但宽度是一定的,以宽度为标准,所以,一般都是按宽度进行区分
160dpi 屏幕宽度为3 inch,dp为480dp
2、另外一款分辨率 720 * 1280的手机宽 720,高1280
240dpi 屏幕宽度为3 inch,dp同样为480dp
所以,两款手机屏幕大小一样,但是分辨率不同,因此,相同的布局文件相同的dimens文件完全适用于这两款手机
但是图片呢,相同的图片,分别放在drawable-mdpi和drawable-hdpi,
在第一款手机上显示正常,在第二款手机上却会显得小,所以,高密度的图片应该做大
(注:如果只有一套图,比如放在drawable-mdpi中,图片显示大小是相同的)
第二种情况(分辨率相同,屏幕宽度不同)
1、一款分辨率 720 * 1280的手机宽 720,高1280
160dpi 屏幕宽度为4.5 inch,dp为720dp
2、一款分辨率 720 * 1280的手机宽 720,高1280
240dpi 屏幕宽度为3 inch,dp为480dp
借上一种情况结果,图片会做不同尺寸,现在布局和尺寸可能会不同了
所以,布局和尺寸需要进行适配,如果不同大小的屏幕需要不同布局。
例如第一款手机,可能是平板大小了,布局和手机不同,layout不能适用于平板,
因此,需要重新建立文件夹重新布局例如 layout-sw720dp
第二款手机,布局也不同,需要建立layout-sw480dp
对于不同屏幕尺寸,view的尺寸可能也会有不同
在values中会有dimen.xml文件,因此尺寸也需要适配
可能会建立如下目录values-sw720dp、values-sw480dp
sw720dp、sw480dp的格式如下:
sw<N>dp (smallestWidth)屏幕横竖屏切换,最小屏幕宽度不会发生变化
w<N>dp 屏幕横竖屏切换,屏幕宽度会根据横竖屏发生变化
其中的N指的是屏幕宽度,单位dp,720px不同密度,宽度不同,所以会有不同目录
这种使用方式是3.2才开始使用,之前是使用small、normal、large、xlarge这种
目录名称举例:
layout-sw720dp、layout-sw480dp、layout-sw320dp、layout-large、values-sw480dp等
总结,就目前自己了解的适配就这两种情况
1、屏幕宽度相同,分辨率不同(适配不同密度图片、不同密度的样式、主题等)
2、分辨率相同,屏幕宽度不同(适配不同布局、适配不同尺寸)
另外,从android生成的目录结构来看,应该还有第三种,适配不同版本
如values目录会有values-v11、values-v14,里边只有style.xml,
是不同的主题,可能是不同版本的android,主题有新增的,想在新版本使用新ui界面,做的适配,未经证实,仅是猜测。
推荐以下文档,研读:
http://developer.android.com/guide/practices/screens_support.html
http://developer.android.com/training/multiscreen/index.html
1、dp:device independent pixels(设备独立像素),是像素和密度的比
dp = px / density
2、dpi(dot per inch每英寸的点数)和ppi相等,是屏幕对角线的像素数和屏幕尺寸的比例
dpi = ppi = (√(screenHeight^2 + screenWidth^2)) / 屏幕大小(inch)
3、密度是dpi和160的比例
density = dpi / 160
4、英寸是相许和dpi或ppi的比例
inch = px / dpi = px / ppi
适配,按自己理解的只有以下两种情况(有不同见解可以补充)
先看第一种情况(屏幕宽度相同,分辨率不同)
1、一款分辨率是480 * 800的手机,宽 480,高800,高度一般会受虚拟键等的影响,但宽度是一定的,以宽度为标准,所以,一般都是按宽度进行区分
160dpi 屏幕宽度为3 inch,dp为480dp
2、另外一款分辨率 720 * 1280的手机宽 720,高1280
240dpi 屏幕宽度为3 inch,dp同样为480dp
所以,两款手机屏幕大小一样,但是分辨率不同,因此,相同的布局文件相同的dimens文件完全适用于这两款手机
但是图片呢,相同的图片,分别放在drawable-mdpi和drawable-hdpi,
在第一款手机上显示正常,在第二款手机上却会显得小,所以,高密度的图片应该做大
(注:如果只有一套图,比如放在drawable-mdpi中,图片显示大小是相同的)
第二种情况(分辨率相同,屏幕宽度不同)
1、一款分辨率 720 * 1280的手机宽 720,高1280
160dpi 屏幕宽度为4.5 inch,dp为720dp
2、一款分辨率 720 * 1280的手机宽 720,高1280
240dpi 屏幕宽度为3 inch,dp为480dp
借上一种情况结果,图片会做不同尺寸,现在布局和尺寸可能会不同了
所以,布局和尺寸需要进行适配,如果不同大小的屏幕需要不同布局。
例如第一款手机,可能是平板大小了,布局和手机不同,layout不能适用于平板,
因此,需要重新建立文件夹重新布局例如 layout-sw720dp
第二款手机,布局也不同,需要建立layout-sw480dp
对于不同屏幕尺寸,view的尺寸可能也会有不同
在values中会有dimen.xml文件,因此尺寸也需要适配
可能会建立如下目录values-sw720dp、values-sw480dp
sw720dp、sw480dp的格式如下:
sw<N>dp (smallestWidth)屏幕横竖屏切换,最小屏幕宽度不会发生变化
w<N>dp 屏幕横竖屏切换,屏幕宽度会根据横竖屏发生变化
其中的N指的是屏幕宽度,单位dp,720px不同密度,宽度不同,所以会有不同目录
这种使用方式是3.2才开始使用,之前是使用small、normal、large、xlarge这种
目录名称举例:
layout-sw720dp、layout-sw480dp、layout-sw320dp、layout-large、values-sw480dp等
总结,就目前自己了解的适配就这两种情况
1、屏幕宽度相同,分辨率不同(适配不同密度图片、不同密度的样式、主题等)
2、分辨率相同,屏幕宽度不同(适配不同布局、适配不同尺寸)
另外,从android生成的目录结构来看,应该还有第三种,适配不同版本
如values目录会有values-v11、values-v14,里边只有style.xml,
是不同的主题,可能是不同版本的android,主题有新增的,想在新版本使用新ui界面,做的适配,未经证实,仅是猜测。
推荐以下文档,研读:
http://developer.android.com/guide/practices/screens_support.html
http://developer.android.com/training/multiscreen/index.html
相关文章推荐
- Android关于屏幕适配的相关重要概念解析
- Android屏幕相关概念和适配方法
- 程序包开发相关概念及其应用
- 程序包开发相关概念及其应用
- android的alsa应用中的一些概念和原理
- Android – 多屏幕适配相关
- Android应用开发之(你必须知道的如何在Android4.0上开发多屏幕适配的应用)
- SOA应用系统总体框架及相关概念
- android之屏幕适配及其相关参数详解
- Android单线程模型相关概念详解
- android – 多屏幕适配相关
- Windows Phone学习系列(二):地图相关应用开发(概念篇)
- Android单线程模型相关概念详解
- Android电源管理相关应用技巧分享
- Android电源管理相关应用技巧分享
- Android 关闭与当前应用相关的进程、服务
- 触发器相关概念与应用
- Android中Exif的操作以及Camera应用中相关代码优化方案
- Android简明开发教程四:Android应用基本概念
- android应用如何适配于多个分辨率的手机