为了使UI界面在不同大小的移动端显示器上能够正常显示,大家可能都知道使用sp作为字体大小的单位,dp作为其他元素长度的单位。

前几天看了一篇文章关于 App设计规范的,文章用心写的非常好,这里是链接 http://www.25xt.com/appdesign/10821.html 。但是费解的是所有的长度单位都是用px。好吧,“”原谅“这位UI设计师良心ps的一张app设计规范图。在UI布局的时候有必要了解一下android设备的适应了。

先来问大家几个问题,

1.android设备中有哪些 度量单位?

2.像素的最小单位是多少?

3.什么是屏幕分辨率?

4.什么是独立像素密度?

5.屏幕尺寸是指长和宽的物理尺寸?

说实在了,刚开始这几个问题我知道的也很模糊,也就知道个大概的样子。看了这篇文章你就明白了

1.屏幕尺寸

Screen size屏幕尺寸是表示手机的实际物理尺寸,并不是说设备的长和宽,而是对角线的长度,单位是英寸,1in=2.54cm.市场上常见的屏幕尺寸有3.5、3.7、4.2、5.0、5.5、6.0


2.屏幕分辨率

虽然这个问题太基础了,的确。市场上主流分辨率有480*800 、720*1280、1080*1920。在计算机屏幕的水平和垂直方向上有 多少个像素,屏幕上显示的像素个数,单位尺寸内像素点越多,显示的图像就越清楚。单位是px,1px=1个像素点。看看苹果手机平布尺寸和分辨率吧。

苹果型号 主屏屏幕大小 系统 摄像
iPhone1代 3.5英寸320×480像素 iOS3.0 200万像素
iPhone2代

(iPhone 3G)
3.5英寸320×480像素 iOS3.0 200万像素
iPhone 3GS 3.5英寸480x320像素 iOS3.0 300万像素
iPhone4 3.5英寸960x640像素 iOS5.0 500万像素
iPhone4S 3.5英寸960x640像素 iOS7.0 700万像素
iPhone 5 4英寸1136x640像素 iOS6.0 800万像素
iphone5s 4英寸1136x640像素 iOS7.0 800万像素
iphone5c 4英寸1136x640像素 iOS7.0 800万像素
iphone6 4.7英寸1334x750像素 iOS8.0 800万像素
iphone6s 4.7英寸1334x750像素 iOS9 1200万像素
iphone6 plus 5.5英寸1920x1080像素 iOS8.0 800万像素
iphone6s plus 5.5英寸 1920x1080像素 iOS 9 1200万像素

下面我们就来说说这些基本长度单位吧。

3.android中元素的常用度量单位dp

dp:density independent pixel 密度无关的像素,也就是设备独立像素,dip同dp相同。也就是说它是一个相对的度量单位,在现实生活我们接触的所有度量单位都是绝对长度(计算机的确有趣),那么dp的物理尺寸是怎么一个比例关系呢,看图,

在不同分辨率中,其长度不同,所以我们常用dp来作为android设备中的长度。如图,使用dp作为元素的单位,其物理大小并没有发生太大变化

4.android不常用的度量单位px 、sp 、pt

在浏览器中我们还知道字体大小的单位还有em。在android设备还有一些几乎不常用的字体度量单位
1.in:(英寸)长度单位,
2.mm:(毫米)长度单位
3:pt (磅)point ,标准长度单位,1pt=1/72英寸,常用于用于印刷业

5.android中常用的字体度量单位px和sp的区别:

px和sp都可以用来做字体大小的单位,在浏览器中我们经常使用px来表示字体大小的单位,但是在android设置中我们经常使用sp来表示字体大小的单位,首先我们要知道的是px是绝对度量单位,而sp是相对度量单位。
什么是像素px?
像素是组成一张照片的基本单位,某 广告说的好,柔光双摄,照亮你的美,有的手机主打照相,相片清晰度高,拍的相片骚气。这里所说的就是像素高,一像素代表一个点,相同大小的相片,像素越高,也就像素点分布密集,清晰度就越高,反之也如此。
px:pixel像素,不同设备显示效果相同, 像素的最小单位是1个像素,虽然在ps中我们能设置小于0.1的单位,如图



但是在浏览器和移动设备中不能设置小于1像素单位的,即时设置小于1的,实际最终显示的结果也是四舍五入。在android中几乎不用px来作为字体大小的单位,用px的缺点很明显,在于它是一个绝对长度,在每英寸160点的显示器和在每英寸240的显示器字体大小不一样。如图在不同分辨率中,显示效果的物理大小还是有一定区别的


什么是sp?

sp是作为android中字体的度量单位,也可用来描述行距,这是一个相对的度量单位。
ppi:pixel per inch,表示的是每英寸所拥有的像素(pixel)数目,ppi越高,显示则更清晰。关于dpi和ppi的区别,链接 https://zhidao.baidu.com/question/181166877.html
sp与px的换算公式是:1sp*ppi/160=1px;
android规范字号sp 对应的像素高度px
12 20
14 24
18 30
22 36


6.android尺寸适配原理:

如果要讲解android元素尺寸适配,可能要写一篇文章,才能说清楚。这里推荐这篇文章 http://blog.csdn.net/lmj623565791/article/details/45460089。这里我们就简单了解一下drawable目录吧,新建的xamarin android 项目,并没有drawable-hdpi, drawable-ldpi, drawable-mdpi,
drawable-xhdpi四个目录。好像java里面会自动创建,UI中的各种小图标在需要放在这些不同dpi中的文件夹,所以我们需要去创建这几个文件夹。

drawable-hdpi、drawable-mdpi、drawable-ldpi、drawable-xhdpi的区别:

(1)drawable-hdpi存放高分辨率的图片,如(480*800),(480x854)

(2)drawable-mdpi存放中等分辨率的图片,如 (320*480)

(3)drawable-ldpi存放低分辨率的图片,如(240*320)

(4)drawable-xhdpi 里面超高分辨率图片600*960


7.Android UI设计中的48dp定律原则

在设置元素尺寸时我们已经知道要dp来表示的,在通常情况下48dp在物理屏幕上差不多就是9毫米的大小,在手指点触的元素总一般元素的大小在7毫米到10毫米之间,好处时点击率增加,正确率提高,美观设计上比较合理。所以在可点触元素的物理高度宽度都应大于48dp,也就是说这个物理尺寸在任何设备上都不会小于7毫米,太小点中率降低,错误率提高。
当然,这仅仅是一个推荐值,加入的你的app是使用对象仅仅是6到12岁的小孩子,手指没那么大,也没有必要说一定不能小于48dp。定律在心中,灵活运用才能不能定律所束缚。

作者:张林

标题:xamarin android 布局尺寸了解 原文地址:http://blog.csdn.net/kebi007/article/details/72911176

转载随意注明出处


[置顶] xamarin android 布局尺寸了解的更多相关文章

  1. [置顶] xamarin android自定义标题栏(自定义属性、回调事件)

    自定义控件的基本要求 这篇文章就当是自定义控件入门,看了几篇android关于自定义控件的文章,了解了一下,android自定义控件主要有3种方式: 自绘控件:继承View类,所展示的内容在OnDra ...

  2. [置顶] xamarin android自定义spinner

    以前弄的一个下拉框时自带的spinner,感觉好丑,实际效果实在满足不了基本的UI界面要求,还是自己动手丰衣足食,看了网上关于android中自定义spinner的文章,感觉实现原理还是比较简单,所以 ...

  3. [置顶] xamarin android Fragment实现底部导航栏

    前段时间写了篇关于Fragment的文章,介绍了基础的概念,用静态和动态的方式加载Fragment  Xamarin Android Fragment的两种加载方式.下面的这个例子介绍xamarin ...

  4. [置顶] Xamarin android沉浸式状态栏

    虽然关于android "沉浸式"状态栏有很多博客介绍过,从小菜到大神无一例外.我第一次看到这种"沉浸"式的效果我也以为真的是这么叫,然而根本不是这么回事,完全 ...

  5. [置顶] Xamarin android中使用signalr实现即时通讯

    前面几天也写了一些signalr的例子,不过都是在Web端,今天我就来实践一下如何在xamarin android中使用signalr,刚好工作中也用到了这个,也算是总结一下学到的东西吧,希望能帮助你 ...

  6. [置顶] xamarin android toolbar(踩坑完全入门详解)

    网上关于toolbar的教程有很多,很多新手,在使用toolbar的时候踩坑实在太多了,不好好总结一下,实在浪费.如果你想学习toolbar,你肯定会去去搜索androd toolbar,既然你能看到 ...

  7. [置顶] xamarin android使用gps定位获取经纬度

    看了文章你会得出以下几个结论 1.android定位主要有四种方式GPS,Network(wifi定位.基站定位),AGPS定位 2.绝大部分android国产手机使用network进行定位是没有作用 ...

  8. [置顶] xamarin android使用zxing扫描二维码

    好久没写了,这片文章篇幅不长,概述一下在xamarin android中用 ZXing.Net.Mobile库扫描二维码读取url的示例.扫码支付,扫码登录,App上各种各样的扫码,好像没个扫码的就有 ...

  9. [置顶] Xamarin android如何调用百度地图入门示例(一)

    在Xamarin android如何调用百度地图呢? 首先我们要区分清楚,百度地图这是一个广泛的概念,很多刚刚接触这个名词"百度地图api",的确是泛泛而谈,我们来看一下百度地图的 ...

随机推荐

  1. docker-compose v3版本命令详解参考

    参考和指南 这些主题描述了Compose文件格式的第3版.这是最新的版本. Compose and Docker 兼容性矩阵 有几个版本的Compose文件格式 - 1,2,2.x和3.x.下表是快速 ...

  2. Self Hosting WebServer 的几种方式

    写在前面: IIS是Windows平台非常关键的组件,它是微软自带的Web服务器,可以很方便的帮助我们运行起一个网站,WebApi等服务,提供给外部来访问.即使它被很多java或者ruby的同学各种鄙 ...

  3. leetcode series:Two Sum

    题目: Given an array of integers, find two numbers such that they add up to a specific target number. ...

  4. hiho-1015- KMP算法

    #1015 : KMP算法 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在 ...

  5. CI框架使用PHPmailer发送邮件找回密码

    之前用PHP+Mysql+jQuery结合ThinkPHP做了一个用户验证邮箱找回密码功能<ThinkPHP之PHP+Mysql+jQuery发送邮箱找回密码>,现在分享一下用CI框架结合 ...

  6. form表单数据封装成json格式并提交给服务器

    1.jsp代码,form表单: <form action="#" id="costForm"> <input type="hidde ...

  7. Python-01 学习第一节

    python是一种解释型.面向对象.动态数据类型的高级程序设计语言. 执行Python程序: 对于大多数程序语言,第一个入门编程代码便是"Hello World!",以下代码为使用 ...

  8. Android注解方式实现表单校验

    在开发中总会遇到输入框的输入规则限制 比如 电话输入框电话号码的校验,密码规则的校验等 ,我们通常做法是提交操作时对每个输入框的输入内容进行校验,很多的if else ,代码看起来很乱,其实我们可以用 ...

  9. 《Linux Device Drivers》第十八章 TTY驱动程序——note

    简单介绍 tty设备的名称是从过去的电传打字机缩写而来,最初是指连接到Unix系统上的物理或虚拟终端 Linux tty驱动程序的核心紧挨在标准字符设备驱动层之下,并提供了一系列的功能,作为接口被终端 ...

  10. android手机状态解释,比方android.os.Build.VERSION.SDK

    //BOARD 主板 String phoneInfo = "BOARD: " + android.os.Build.BOARD; phoneInfo += ", BOO ...