Android设计中的尺寸问题
Android把屏幕大小分成四种:small, normal, large, xlarge;
屏幕密度分成:low(ldpi), medium(mdpi), high(hdpi), extra high(xhdpi);各个屏幕密度之间的关系例如以下:
| 密度名称 | 密度的參考值(dpi) | 关系 | 相应的屏幕分辨率 |
|---|---|---|---|
| xxxhdpi | 640dpi | ||
| xxhdpi | 480dpi | ||
| xhdpi | 320dpi | 2.0 | |
| hdpi | 240dpi | 1.5 | 800*480 |
| mdpi | 160dpi | 1.0 (基准) | 480*320 |
| ldpi | 120dpi | 0.75 | 320*240 |
dpi(dot per inch):每英寸像素点的个数,1英寸=2.54厘米,平时大家说的4.3英寸、4.5英寸事实上是屏幕对角线的长度。
dp(density independent pixel):独立密度像素,使用dp作为单位设置控件,无论屏幕或dpi多大,其显示效果都是一致的;假设使用px,则会出现显示不一致的效果。比如对于长度为160px的线段,在密度为160dpi。宽度为1英寸的屏幕上会填满整个屏幕;而对于密度为320dpi,宽度相同为1英寸的屏幕上。仅仅会填满半个屏幕。即对于两个物理尺寸相同,可是dpi不同的屏幕,其显示效果的差异会非常大。
pixel、dp、dpi的关系例如以下:
px = dp
*(dpi/160)
原则1:在给Android界面切图时。一般採用160dpi作为基准。由于以160dip作为基准,仅仅要切图的长和宽的像素点个数是4的倍数,则xhdpi下该图在长宽上的像素个数能够乘以2,hdpi下乘以1.5,ldpi下乘以0.75。结果得到的长宽上的像素点个数都是整数。假设以240dpi作为基准,则240下切图长宽的像素点个数须要是3的倍数,相应的在xhdpi下乘以1.333333,mdpi下乘以0.66666,ldpi下除以2;这样会得到非整形的像素点个数。
QVGA, WQVGA的屏幕密度是:120
HVGA的屏幕密度是:160
WVGA的屏幕密度是:240
当中。ldpi的资源不是必须的,当提供hdpi的资源时。系统会自己主动将hdpi的资源缩小一半来适配ldpi的屏幕
注:屏幕密度和屏幕分辨率是不同的概念,通过屏幕分辨率和尺寸,能够计算出屏幕密度;比如分辨率为320*480,屏幕尺寸为3.2英寸(对角线长度)。则屏幕密度为:
Density = \frac{\sqrt{320^2+480^2}}{3.2}">
注: dip就是dp
sp(scale independent pixel):缩放无关像素。跟dp相似,唯一不同的是。该单位会受系统字体设置的影响,通经常使用在字体上。Android规范中规定的经常使用字体大小:

DisplayMetrics类
DisplayMetrics是用于描写叙述屏幕相关參数的类。訪问DisplayMetrics的方法:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay.getMetrics(metrics);
然后就能够訪问metrics变量中的各个常量、字段和方法了
- density : 屏幕密度
- densityDpi: 屏幕密度,以dpi为单位
- heightPixels:屏幕高度,以像素为单位
- widthPixels:屏幕宽度,以像素为单位
- xdpi:屏幕X方向的屏幕密度
- ydpi:屏幕Y方向的屏幕密度
市场数据
排名前几位的屏幕分辨率:
| 分辨率 | 百分比 | 屏幕密度 |
|---|---|---|
| 1280 * 720 | 29.2% | 267 ~ 293(hdpi, xhdpi) |
| 800 * 480 | 18.5% | 233 ~ 266(hdpi) |
| 854 * 480 | 13.8% | 195 ~ 217(mdpi, hdpi) |
| 1920 * 1080 | 10.6% | 367 ~ 400(xhdpi) |
| 960 * 540 | 10% | 220 ~ 244(hdpi) |
| 480 * 320 | 4.1% | |
| 1184 * 720 | 3% |
数据来源:http://www.umindex.com/devices/android_resolutions
相关链接
Android设计中的尺寸问题的更多相关文章
- 【转】Android设计中的.9.png
来源:http://isux.tencent.com/android-ui-9-png.html Android设计中的.9.png 注意:当使用9.png做TextView背景时,一定要设置内容区域 ...
- Android设计中的.9.png图片
.9.png是一种能够自己定义拉伸特定区域的图片格式. 简书:Android设计中的.9.png图片 在Android的UI设计开发中,非常多控件须要适配不同的手机分辨率进行拉伸或者压缩,这样就出现了 ...
- Android 设计中的.9.png
在 Android 的设计过程中,为了适配不同的手机分辨率,图片大多需要拉伸或者压缩,这样就出现了可以任意调整大小的一种图片格式“.9.png”.这种图片是用于Android开发的一种特殊的图片格式, ...
- 【转载】Android设计中的.9.png
转载自:腾讯ISUX (http://isux.tencent.com/android-ui-9-png.html) 在Android的设计过程中,为了适配不同的手机分辨率,图片大多需要拉伸或者压 ...
- Android设计中的.9.png
在Android的设计过程中,为了适配不同的手机分辨率,图片大多需要拉伸或者压缩,这样就出现了可以任意调整大小的一种图片格式“.9.png”.这种图片是用于Android开发的一种特殊的图片格式,它的 ...
- Android设计中的.9.png与Android Studio中的设置
在Android的设计过程中,为了适配不同的手机分辨率,图片大多需要拉伸或者压缩,这样就出现了可以任意调整大小的一种图片格式“.9.png”.这种图片是用于Android开发的一种特殊的图片格式,它的 ...
- 点9图 Android设计中如何切图.9.png
转载自:http://blog.csdn.net/buaaroid/article/details/51499516 本文主要介绍如何制作 切图.9.png(点9图),另一篇姊妹篇文章Android屏 ...
- Android开发中 .9.png格式图形设计:
Android .9.png设计 宿舍大神在做android项目,有幸得知.9.png的图形格式. 不知道大家是否注意过聊天气泡和锁屏时随着你文字的增多和你的滑动而跟着变化并且分辨率没有变低的图形?是 ...
- shape和selector是Android UI设计中经常用到的
shape和selector是Android UI设计中经常用到的,比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到shape和selector.可以这样说,shape和 ...
随机推荐
- UVALive 5033 I'm Telling the Truth 二分图最大匹配(略有修改)
I - I'm Telling the Truth Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu ...
- 【bzoj1316】树上的询问 树的点分治+STL-set
题目描述 一棵n个点的带权有根树,有p个询问,每次询问树中是否存在一条长度为Len的路径,如果是,输出Yes否输出No. 输入 第一行两个整数n, p分别表示点的个数和询问的个数. 接下来n-1行每行 ...
- 【bzoj2527】[Poi2011]Meteors 整体二分+树状数组
题目描述 有N个成员国.现在它发现了一颗新的星球,这颗星球的轨道被分为M份(第M份和第1份相邻),第i份上有第Ai个国家的太空站. 这个星球经常会下陨石雨.BIU已经预测了接下来K场陨石雨的情况.BI ...
- 数组洗牌算法-shuffle
数组洗牌,最近直接的想法是从数组随机取出一个元素,放到另一个数组中,但是这样取出的元素会有重复,必须采取一定的方法保证: 1. 元素不能重复2. 元素被抽取的概率相等,即随机性 数组洗牌经典算法有两种 ...
- PE
不是projecteuler,我想说的是projecteuclid..似乎是一个有很多数学文献的网站..? PE541似乎是一道很有趣的题目,有一个暴力大概就是首先转化一下模型变成找\(\sum_{x ...
- javaScript 笔记(4) -- 弹窗 & 计时事件 & cookie
弹窗 可以在 JavaScript 中创建三种消息框:警告框.确认框.提示框. 警告框:经常用于确保用户可以得到某些信息. 当警告框出现后,用户需要点击确定按钮才能继续进行操作. 语法: window ...
- 8个学习.net的博客链接 (以前收藏过更多的,被百度新版搞没了,恨死了)
原文发布时间为:2012-09-18 -- 来源于本人的百度文章 [由搬家工具导入] Simone Chiaretta’s CodeClimber http://www.haacked.com/ ( ...
- SpringTest(一)
SpringMvcTest总结: 最近要做单元测试,所以选择的是SpringTest这个测试框架. 1.准备工作.(导入jar包) 因为使用Maven管理jar包,所以在要做单元测试的模块中的p ...
- hdu 1847 Good Luck in CET-4 Everybody! 组合游戏 找规律
题目链接 题意 有\(n\)张牌,两人依次摸牌,每次摸的张数只能是\(2\)的幂次,最后没牌可摸的人为负.问先手会赢还是会输? 思路 0 1 2 3 4 5 6 7 8 9 10 11 -- P N ...
- Scrapy笔记:使用scrapy shell url时出现403错误的解决办法
参考 : http://www.th7.cn/Program/Python/201704/1154208.shtml 原因是网站的防爬虫配置起到了作用 (1):第一种方法是在命令上加上-s USER_ ...