1.术语和概念

术语

说明

备注

Screen size(屏幕尺寸)

指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸

摩托罗拉milestone手机是3.7英寸

Aspect Ratio(宽高比率)

指的是实际的物理尺寸宽高比率,分为long和nolong

Milestone是16:9,属于long

Resolution(分辨率)

和电脑的分辨率概念一样,指手机屏幕纵、横方向像素个数

Milestone是854*480

DPI(dot per inch)

每英寸像素数,如120dpi,160dpi等,假设QVGA(320*240)分辨率的屏幕物理尺寸是(2英寸*1.5英寸),dpi=160

可以反映屏幕的清晰度,用于缩放UI的

Density(密度)

屏幕里像素值浓度,resolution/Screen size可以反映出手机密度,

Density-independent pixel (dip)

指的是逻辑密度计算单位,dip和具体像素值的对应公式是dip/pixel=dpi值/160,也就是px = dp * (dpi / 160)

2. DPI值计算

比如:计算WVGA(800*480)分辨率,3.7英寸的密度DPI,如图1所示

图1

Diagonal pixel表示对角线的像素值(=),DPI=933/3.7=252

3.手机屏幕的分类

3.1根据手机屏幕密度(DPI)或屏幕尺寸大小分为以下3类,如图2所示

图2

3. 2手机屏幕分类和像素密度的对应关系如表1所示:

Low density (120), ldpi

Medium density (160), mdpi

High density (240), hdpi

Small screen

QVGA (240x320)

Normal screen

WQVGA400 (240x400)WQVGA432 (240x432)

HVGA (320x480)

WVGA800 (480x800)WVGA854 (480x854)

Large screen

WVGA800* (480x800)WVGA854* (480x854)

表1

3.3手机尺寸分布情况(http://developer.android.com/resources/dashboard/screens.html)如图3所示,目前主要是以分辨率为800*480和854*480的手机用户居多

图3

从以上的屏幕尺寸分布情况上看,其实手机只要考虑3-4.5寸之间密度为1和1.5的手机

4 UI设计

从开发角度讲,应用程序会根据3类Android手机屏幕提供3套UI布局文件,但是相应界面图标也需要提供3套,如表2所示

Icon Type

Standard Asset Sizes (in Pixels), for Generalized Screen Densities

Low density screen (ldpi)

Medium density screen (mdpi)

High density screen (hdpi)

Launcher

36 x 36 px

48 x 48 px

72 x 72 px

Menu

36 x 36 px

48 x 48 px

72 x 72 px

Status Bar

24 x 24 px

32 x 32 px

48 x 48 px

Tab

24 x 24 px

32 x 32 px

48 x 48 px

Dialog

24 x 24 px

32 x 32 px

48 x 48 px

List View

24 x 24 px

32 x 32 px

48 x 48 px

表2

5 如何做到自适应屏幕大小呢?

1)界面布局方面

需要根据物理尺寸的大小准备5套布局,layout(放一些通用布局xml文件,比如界面中顶部和底部的布局,不会随着屏幕大小变化,类似windos窗口的title bar),layout-small(屏幕尺寸小于3英寸左右的布局),layout-normal(屏幕尺寸小于4.5英寸左右),layout-large(4英寸-7英寸之间),layout-xlarge(7-10英寸之间)

2)图片资源方面

需要根据dpi值准备5套图片资源,drawable,drawalbe-ldpi,drawable-mdpi,drawable-hdpi,drawable-xhdpi

Android有个自动匹配机制去选择对应的布局和图片资源

四种屏幕尺寸分类:: small, normal, large, and xlarge
四种密度分类: ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high)
需要注意的是: xhdpi是从 Android 2.2 (API Level 8)才开始增加的分类.
xlarge是从Android 2.3 (API Level 9)才开始增加的分类.
DPI是“dot per inch”的缩写,每英寸像素数。

一般情况下的普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320。

两种获取屏幕分辨率信息的方法:

DisplayMetrics metrics = new DisplayMetrics();
Display display = activity.getWindowManager().getDefaultDisplay();
display.getMetrics(metrics);
//这里得到的像素值是设备独立像素dp

//DisplayMetrics metrics=activity.getResources().getDisplayMetrics(); 这样获得的参数信息不正确,不要使用这种方式。
不能使用android.content.res.Resources.getSystem().getDisplayMetrics()。这个得到的宽和高是空的。
如果需要为Android pad定制资源文件,则res目录下的目录可能为:
drawable
drawable-ldpi
drawable-mdpi
drawable-hdpi
drawable-xhdpi
drawable-nodpi
drawable-nodpi-1024×600
drawable-nodpi-1280×800
drawable-nodpi-800×480
values
values-ldpi
values-mdpi
values-hdpi
values-xhdpi
values-nodpi
values-nodpi-1024×600
values-nodpi-1280×800
values-nodpi-800×480

上述内容转载:http://blog.csdn.net/liguangzhenghi/article/details/7244271
我是2011年开始接触的android,那个时候根本就没有这么文件夹这么多的说法,我今天加4.4的工程的时候出现了这几个文件(据了解:3.2以后增加的),做也如下解释:
menu:对应硬件menu响应内容,但是现在android不是已经对外公布建议所有的应用程序使用actionbar,但是还有这个文件夹,搞不懂。
values-sw600dp: sw是small least width,大概意思就是在最小宽度600以上才会生效,后面的值我们可以自己更改。
values-sw720dp-land或者port:主要体现在后面两个单词的却别,一直找不到很合理的解释;我刚刚看官方的api,慢慢翻译得到了一个句号:Some layouts work well in both landscape and portrait orientations, but most of them can benefit from adjustments. In the News Reader sample app, here is how the layout behaves in each screen size and orientation;
大概意思就是我们在开发工程中,会遇到横屏和竖屏的情况,所以我们会根据这个后缀名去引用不同布局文件。
但是还是不知道是什么意思,希望看到文章的朋友可以留言一帮忙解释一下!
values-v11或values-v8:这个一般应用到主题上,因为一些低版本的手机不支持高版本的主题设置,所以需要这个文件控制一下

android适配和新文件及作用相关推荐

  1. android odex 作用,Android ROM中Odex文件的作用及介绍

    细心的网友可能发现Android的ROM中有很多odex文件,相对于 APK中的dex文件而言这个odex有什么作用呢? Android123提示大家,如果你仔细观察会发现文件名时一一对应的,同时那些 ...

  2. 新的android包格式,在Android中注册新文件类型

    我很惊讶gnclmorais的解决方案应该起作用.因为它data在一个条目中包含多个条目intent-filter对我不起作用.最后起作用的是多intent-filter合一的activity: an ...

  3. Android application project 各个文件夹作用

    1. src:源文件,主要是完成java代码的编写 2. gen:ADT即系统自动生成的JAVA文件(即源代码目录),不要尝试去修改,改不好整个项目就废了. 3. assets:资源文件,图片,音频, ...

  4. android创建一个新文件,如何在android中创建一个新文件夹DCIM

    张贴在评论,我想你的代码,并它为我工作. MainActivity.java public class MainActivity extends Activity { private final st ...

  5. android主要文件的作用是什么,androidmanifest.xml文件的作用是什么

    androidmanifest.xml文件的作用:1.是每个android程序中必须的文件,它位于整个项目的根目录:2.配置程序运行所必要的组件,权限,以及一些相关信息:3.是整个应用的入口,所以有助 ...

  6. 安卓9.0发布,献上Android 9.0新特性适配处理

    安卓9.0即Android 9.0已经面向全球发布,它的代号是Pie,仍然基于Linux内核构建.为了避免Android 9.0 Pie新特性更新引发的适配问题,本文将介绍Android 9.0将带来 ...

  7. android studio各个资源文件夹以及作用备注

    src:存放所有的*.java源程序. gen:为ADT插件自动生成的代码文件保存路径,里面的R.java将保存所有的资源ID. assets:可以存放项目一些较大的资源文件,例如:图片.音乐.字体等 ...

  8. Android适配--最详细的限定符屏幕适配方案解析 附带values-Dimens文件生成工具

    屏幕适配 前言 适配缘由 相关概念 适配方案 db适配 设计最大分辨率图片 屏幕分辨率限定符(宽高限定符) dimens文件生成原理 使用样例1 使用样例2 dimens文件生成脚本 总结 最小宽度限 ...

  9. Android 项目中文件夹作用(res文件夹详细介绍)

    1. src:存放所有的*.Java源程序. 2. gen:为ADT插件自动生成的代码文件保存路径,里面的R.java将保存所有的资源ID. 3. assets:可以存放项目一些较大的资源文件,例如: ...

最新文章

  1. shell 中柏开机显示efi_中柏 ezpad 平板安装Fedora 21 (Linux)
  2. Python 之 Pandas (一)介绍
  3. Win10电脑录屏,视频有杂音,用耳机录音
  4. 【放置奇兵】算法 小恶魔大冒险
  5. opengl加载显示3D模型SMD类型文件
  6. (个人总结)Linux命令——任意目录查看穿越
  7. 无法打开物理文件 操作系统错误 5:拒绝访问 SQL Sever
  8. MySQL 8.x 以前的版本修改密码规则
  9. 《零基础》MySQL 安装(二)
  10. X86汇编语言从实模式到保护模式14:用户程序编程接口及其实现
  11. 讨论:.NET 4各项技术的应用前景,徐汇区网站设计
  12. 设计模式笔记(10)---装饰模式(结构型)
  13. 【UOJ#177】欧拉回路
  14. python center用法_【语言学习】python——字符串
  15. 申报软件著作权时,怎样快捷计算源代码行数
  16. 51单片机 之 8*8 LED点阵(解决程序烧录没反应、显示拖影问题、取字模软件)
  17. java无效的参数_java.sql.SQLException: 调用中无效的参数
  18. 对敏捷管理模式核心价值的解读
  19. 史密斯探测证实,BioFlash可检出空气中的SARS-CoV-2变异株,包括德尔塔和德尔塔+
  20. 筑牢数字基础设施:华为笔下的中国诗意

热门文章

  1. 山石hcsa认证考试内容_山石防火墙HCSA认证视频教程 理论+实验细致讲解 17集非常难得的 山石防火墙视频教程...
  2. 微信小程序了解向指南
  3. 李开复:不是每个人都适合创业
  4. 书评学习笔记《自动驾驶汽车环境感知》
  5. 如果回到十八岁,我要对自己说......
  6. 打造高效交付团队心得
  7. Could not transfer artifact org.glassfish:javax.el:pom:3.0.1-b06-SNAPSHOT from/to public-snapshots
  8. JavaScript应该被放在什么位置
  9. java获取的日期加一天_java calendar 日期实现不断加一天的代码
  10. 异星工厂机器人教程_《异星工厂》建设机器人怎么用?建设机器人机制介绍