Android-4-X界面开发那点事

Android 4.X界面开发那点事

前言:

为什么要使用dp/dip?导航栏的宽度/高度应该设为多少dp合适?一般情况下应该使每个控件的高度显示为多少?本文就是要回答这些问题。

一,Android中的各种单位

在android开发过程中,我们无法忽略的一个问题就是设备适配问题。从我们刚开始学android的时候,各类教程上就不厌其烦的说,“android碎片化严重,适配很麻烦”、“控件的长度用dip作单位,字体用sp”等等。我们有必要去详细了解一下这些东西,在开发过程中才能游刃有余。

下面是android中的常见单位:

  • px(像素)可以理解为一个小颜色块,是设备显示时的单位;
  • dip是设备独立像素,不同设备有不同的显示效果,和具体硬件有关;备注:dip == dp
  • dpi是屏幕像素密度,每英寸像素数;
  • sp是像素缩放。google建议用于字体显示。

dpi等于对角线的像素值(= 2+2 )除于英寸数。比如,分辨率480 x 800,屏幕尺寸4.3英寸的DPI为:216.

为了方便,google将dpi分为多种模式LDPI, MDPI, HDPI, XHDPI, XXHDPI, and XXXHDPI,常见四个如下,分别对应资源文件中的四个后缀:

也就是说,216会被划分进hdpi。

这里有一个基准:160。因为第一款Android设备(HTC的T-Mobile G1)是属于(约等于)160dpi的,以160为基准,乘以0.5、1、2都可以比较好的对应一个dpi模式。因此有了dip转px的公式:

px=dp(dpi/160)

简而言之,单位dp从表现上和px类似,但是它的长度是不固定的,会根据当前硬件的参数而变化,越宽,每dp就越长(相对于固定的px而言),越窄,每dp就越短。

因此,为了有更好的显示效果,按照google的推荐,字体使用sp为单位,其他元素使用dp为单位,需要缩放的图使用.9图。

二,Android中的尺寸

Android系统现在已经百花齐放,手机、电视、平板、手表等等都可以刷进Android系统。它的开源性质造就了它远超其他系统的市场份额。就手机和平板而言,google官方将600dp以下为手机(handset),600dp以上的为平板(tablet).

48dp

我们经常会有这样一个需求,就是显示一个小控件让用户输入或者单纯展示信息,比如一个EditText。

那么,这个小控件设置为多少合适呢?答案是48dp.

因为要使一个可以被点击的控件能比较好的被点击,它的尺寸应该在7到10毫米之间。而根据各种设备上的状况平均来说,48dp被转化为物理尺寸后都会在9毫米左右。

因此,使用48dp可以保证你的控件能控制为7-10mm这个区间内。随之而来的好处是,既可以比较好的控制合适的信息密度,又可以兼顾控件的点击效果。

如下图,ActionBar、每一行的EditText和NavigationBar的高度都设置为了48dp,整体达到一个不错的展示效果。

后记:

参考资料为:http://developer.android.com/design/style/metrics-grids.html

后半段的内容大部分翻译自android文档,一方面感叹Google把文档写的如此之好,另一方面自己尝试着翻译之后也十分佩服那些翻译书籍的作者。

有不妥之处,还请斧正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值