当前位置: 首页 > news >正文

Android手机分辨率基础知识(DPI,DIP计算)

http://blog.csdn.net/moruite/article/details/6028547

 

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有个自动匹配机制去选择对应的布局和图片资源

转载于:https://www.cnblogs.com/helinzi/p/4456920.html

相关文章:

  • WebApi2官网学习记录---单元测试
  • redhat9 内核由2.4.20-8至2.6.10全过程
  • stdarg.h详解
  • C# 6.0 的那些事
  • C#脚本实践(一)
  • 【Python】excel
  • ASP.NET配置KindEditor文本编辑器 【转载】
  • 在Python中使用ArcObjects对象
  • C#脚本实践(二): Unity脚本机制分析
  • postgresql 数据库-密码修改
  • 解决linux oracle shell上下箭调用历史命令
  • 模板 BFS
  • 类加载器及其委托机制的深入分析
  • 《.NET 4.0面向对象编程漫谈》勘误表(2011年1月14日更新)
  • 【转】Android中的内存管理--不错不错,避免使用枚举类型
  • 345-反转字符串中的元音字母
  • Java编程基础24——递归练习
  • jquery cookie
  • Vue ES6 Jade Scss Webpack Gulp
  • 前端技术周刊 2019-02-11 Serverless
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 使用 Docker 部署 Spring Boot项目
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • Nginx实现动静分离
  • 翻译 | The Principles of OOD 面向对象设计原则
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • (4)Elastix图像配准:3D图像
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (接口自动化)Python3操作MySQL数据库
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (四)图像的%2线性拉伸
  • (转)shell中括号的特殊用法 linux if多条件判断
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (转载)PyTorch代码规范最佳实践和样式指南
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .Net组件程序设计之线程、并发管理(一)
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • @DataRedisTest测试redis从未如此丝滑
  • @html.ActionLink的几种参数格式
  • @Transaction注解失效的几种场景(附有示例代码)
  • @WebServiceClient注解,wsdlLocation 可配置