android适配和新文件及作用
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
android适配和新文件及作用相关推荐
- android odex 作用,Android ROM中Odex文件的作用及介绍
细心的网友可能发现Android的ROM中有很多odex文件,相对于 APK中的dex文件而言这个odex有什么作用呢? Android123提示大家,如果你仔细观察会发现文件名时一一对应的,同时那些 ...
- 新的android包格式,在Android中注册新文件类型
我很惊讶gnclmorais的解决方案应该起作用.因为它data在一个条目中包含多个条目intent-filter对我不起作用.最后起作用的是多intent-filter合一的activity: an ...
- Android application project 各个文件夹作用
1. src:源文件,主要是完成java代码的编写 2. gen:ADT即系统自动生成的JAVA文件(即源代码目录),不要尝试去修改,改不好整个项目就废了. 3. assets:资源文件,图片,音频, ...
- android创建一个新文件,如何在android中创建一个新文件夹DCIM
张贴在评论,我想你的代码,并它为我工作. MainActivity.java public class MainActivity extends Activity { private final st ...
- android主要文件的作用是什么,androidmanifest.xml文件的作用是什么
androidmanifest.xml文件的作用:1.是每个android程序中必须的文件,它位于整个项目的根目录:2.配置程序运行所必要的组件,权限,以及一些相关信息:3.是整个应用的入口,所以有助 ...
- 安卓9.0发布,献上Android 9.0新特性适配处理
安卓9.0即Android 9.0已经面向全球发布,它的代号是Pie,仍然基于Linux内核构建.为了避免Android 9.0 Pie新特性更新引发的适配问题,本文将介绍Android 9.0将带来 ...
- android studio各个资源文件夹以及作用备注
src:存放所有的*.java源程序. gen:为ADT插件自动生成的代码文件保存路径,里面的R.java将保存所有的资源ID. assets:可以存放项目一些较大的资源文件,例如:图片.音乐.字体等 ...
- Android适配--最详细的限定符屏幕适配方案解析 附带values-Dimens文件生成工具
屏幕适配 前言 适配缘由 相关概念 适配方案 db适配 设计最大分辨率图片 屏幕分辨率限定符(宽高限定符) dimens文件生成原理 使用样例1 使用样例2 dimens文件生成脚本 总结 最小宽度限 ...
- Android 项目中文件夹作用(res文件夹详细介绍)
1. src:存放所有的*.Java源程序. 2. gen:为ADT插件自动生成的代码文件保存路径,里面的R.java将保存所有的资源ID. 3. assets:可以存放项目一些较大的资源文件,例如: ...
最新文章
- shell 中柏开机显示efi_中柏 ezpad 平板安装Fedora 21 (Linux)
- Python 之 Pandas (一)介绍
- Win10电脑录屏,视频有杂音,用耳机录音
- 【放置奇兵】算法 小恶魔大冒险
- opengl加载显示3D模型SMD类型文件
- (个人总结)Linux命令——任意目录查看穿越
- 无法打开物理文件 操作系统错误 5:拒绝访问 SQL Sever
- MySQL 8.x 以前的版本修改密码规则
- 《零基础》MySQL 安装(二)
- X86汇编语言从实模式到保护模式14:用户程序编程接口及其实现
- 讨论:.NET 4各项技术的应用前景,徐汇区网站设计
- 设计模式笔记(10)---装饰模式(结构型)
- 【UOJ#177】欧拉回路
- python center用法_【语言学习】python——字符串
- 申报软件著作权时,怎样快捷计算源代码行数
- 51单片机 之 8*8 LED点阵(解决程序烧录没反应、显示拖影问题、取字模软件)
- java无效的参数_java.sql.SQLException: 调用中无效的参数
- 对敏捷管理模式核心价值的解读
- 史密斯探测证实,BioFlash可检出空气中的SARS-CoV-2变异株,包括德尔塔和德尔塔+
- 筑牢数字基础设施:华为笔下的中国诗意
热门文章
- 山石hcsa认证考试内容_山石防火墙HCSA认证视频教程 理论+实验细致讲解 17集非常难得的 山石防火墙视频教程...
- 微信小程序了解向指南
- 李开复:不是每个人都适合创业
- 书评学习笔记《自动驾驶汽车环境感知》
- 如果回到十八岁,我要对自己说......
- 打造高效交付团队心得
- Could not transfer artifact org.glassfish:javax.el:pom:3.0.1-b06-SNAPSHOT from/to public-snapshots
- JavaScript应该被放在什么位置
- java获取的日期加一天_java calendar 日期实现不断加一天的代码
- 异星工厂机器人教程_《异星工厂》建设机器人怎么用?建设机器人机制介绍