Android视觉规范-间距规范与文字规范单位换算(dip、sp与px)

1、dip与px

Android工程师在写页面时,margin值的单位是dip,而视觉设计师通常情况下是通过px来控制margin值的,不同单位之间的差别是什么呢?看下面的参数。

在WVGA(800x480)下dip与px之间的视觉测算结果:


1dip=2px


9dip=14px


17dip=26px


2dip=3px


10dip=15px


18dip=27px


3dip=5px


11dip=17px


19dip=29px


4dip=6px


12dip=18px


20dip=30px


5dip=8px


13dip=20px


21dip=31px


6dip=9px


14dip=21px


7dip=11px


15dip=23px


8dip=12px


16dip=24px

根据上述数值可以得出一个在WVGA下dip与px的换算公式(2N代表任意偶数,2N-1代表小与偶数1的奇数):

dip与px之间的换算公式:

a. 2N + 2N/2 = PX

b.(2N-1)+ 2N/2 = PX

注:偶数值dip 的1.5倍等于相对应的px值,偶数值的间距与奇数元素设置居中对齐的时候会有1px的误差,仔细看可能会不是很美观(如下图)。

A与B居中对齐时有一个值的差,C与D可以完美居中对齐。

但是这种情况发生的几率还是非常小的,只有在细扣页面的时候常见到,遇到时应急处理一下也可以解决问题,但是如果在一开始设计时就注意了的话,后面细扣也不会出现问题的,也就省去了应急处理的时间,在一定程度上可以提高效率。

在HVGA(320x480)下dip与px之间的视觉测算结果:


1dip=1px


9dip=9px


17dip=17px


2dip=2px


10dip=10px


18dip=18px


3dip=3px


11dip=11px


19dip=19px


4dip=4px


12dip=12px


20dip=20px


5dip=5px


13dip=13px


21dip=21px


6dip=6px


14dip=14px


7dip=7px


15dip=15px


8dip=8px


16dip=16px

根据上述参数得出的结果是dip值等于px值。

由上述得出,视觉设计师在WVGA(480x800)模式下设计,建议最佳间距是:12px、18px、24px、30px、36px、42px、48px,由于dip、px值在HVGA\WVGA 对应的都是偶数,各个元素能做到最严格的对齐。

二、sp与px

在WVGA(800x480)下sp与px之间的视觉测算结果:


7sp=11px


15sp=23px


23sp=35px


8sp=12px


16sp=24px


24sp=36px


9sp=14px


17sp=26px


25sp=38px


10sp=15px


18sp=27px


26sp=39px


11sp=17px


19sp=29px


27sp=41px


12sp=18px


20sp=30px


28sp=42px


13sp=20px


21sp=31px


29sp=44px


14sp=21px


22sp=33px


30sp=45px

根据上述参数得出的结果:

sp与px之间的换算公式与dip与px的换算公式相同:

a. 2N + 2N/2 = PX

b.(2N-1)+ 2N/2 = PX

在HVGA(320x480)下sp与px之间的换算结果:


7sp=7px


15sp=15px


23sp=23px


8sp=8px


16sp=16px


24sp=24px


9sp=9px


17sp=17px


25sp=25px


10sp=10px


18sp=18px


26sp=26px


11sp=11px


19sp=19px


27sp=27px


12sp=12px


20sp=20px


28sp=28px


13sp=13px


21sp=21px


29sp=29px


14sp=14px


22sp=22px


30sp=30px

根据上述参数得出的结果是sp值等于px值。

由上述得出,视觉设计师在WVGA(480x800)模式下设计,建议常用最佳字号是:18px、24px、30px、36px、42px,在一些需要严格对齐的位置,这几个参数的文字是不会出问题的,当然其他的字号也是可以用的,毕竟应用中不是所有的文字都需要严格的对齐。

知识普及:

sp、dip,Android默认单位,可根据不同的屏幕大小自适应,同样的字号,不同的屏幕尺寸下显示的视觉效果大小不同。

Px属于固定像素值,不会主动自适应屏幕大小,不同的屏幕尺寸下显示的视觉效果大小效果相同。

Android视觉规范-间距规范与文字规范单位换算(dip、sp与px),布布扣,bubuko.com

时间: 2024-09-30 15:25:35

Android视觉规范-间距规范与文字规范单位换算(dip、sp与px)的相关文章

Android像素单位dp、sp、px、pt的区别和比较

目录结构 目录结构 前言 度量单位含义 换算规则 前言 在分辨率没有牛逼到爆的过去,程序员通常以像素为单位设计计算机用户界面.例如,图片大小为80×32像素.这样处理的问题在于,如果在一个每英寸像素点数更高的新显示器上运行该程序,则用户界面图标会显得很小.在有些极端情况下,用户界面会小到难以看清内容.因为我们在Android应用程序开发中应使用与分辨率无关的度量单位. Android支持dp.sp.px.pt等各种度量单位,下面介绍一下它们的概念和区别. 度量单位含义 dip (dp) devi

Android textView 动态设置代码字号大小,支持单位选项 dp,sp or px

Android textView: setTextSize(TypedValue.COMPLEX_UNIT_PX,22); //22像素 setTextSize(TypedValue.COMPLEX_UNIT_SP,22); //22SP setTextSize(TypedValue.COMPLEX_UNIT_DIP,22);//22DIP

Android.mk和Application.mk文件语法规范说明及举例

以下英文内容摘自:http://www.kandroid.org/ndk/docs/OVERVIEW.htmlThe Android NDK is a set of tools that allows Android application developers to embed native machine code compiled from C and/or C++ source files into their application packages. NDK development

【规范】电子病历系统功能规范(试行)

电子病历系统功能规范(试行) 第一章 总则 第一条 为规范医疗机构电子病历管理,明确医疗机构电子病历系统应当具有的功能,更好地发挥电子病历在医疗工作中的支持作用,促进以电子病历为核心的医院信息化建设工作,根据<中华人民共和国执业医师法>.<医疗机构管理条例>.<病历书写基本规范>.<电子病历基本规范(试行)>和<电子病历基本架构与数据标准(试行)>等法律.法规和规范性文件,制定本规范. 第二条 本规范适用于医疗机构电子病历系统的建立.使用.数据保

JAVAEE 是什么,如何获取各种规范jar包及各种规范的jar包源码

1.什么是JAVA EE JAVA EE是由一系列规范组成的,规范是由JCP制定的,并且提供了参考实现.规范(Specification)是一系列接口,不包含具体实现 有以下常见的JAVA EE实现,包括JBOSS.GLASSFISH等.而tomcat是一个servlet容器,实现了servlet规范.jsp规范.但是它并没有实现EJB.JMS.JPA等规范,所以tomcat不是一个完整的JAVA EE实现 在oracle网站上,下载JAVA EE SDK时,会同时下载GLASSFISH,也就是

Android仿京东首页轮播文字(又名垂直跑马灯)

Android仿京东首页轮播文字(又名垂直跑马灯) 京东客户端的轮播文字效果: 本次要实现的只是后面滚动的文字(前面的用ImageView或者TextView实现即可),看一下实现的效果 实现思路 上图只是一个大概的思路,要实现还需要完善更多的细节,下面会一步步的来实现这个效果: 1.封装数据源:从图上可以看到,轮播的文字是分为两个部分的,暂且把它们分别叫做前缀和内容,而且实际的使用过程中点击轮播图肯定是需要跳转页面的,而且大部分应该是WebView,不妨我们就设置点击时候需要获取的内容就是一个

Android自定义进度条-带文本(文字进度)的水平进度条(ProgressBar)

/** * 带文本提示的进度条 */ public class TextProgressBar extends ProgressBar { private String text; private Paint mPaint; public TextProgressBar(Context context) { super(context); initText(); } public TextProgressBar(Context context, AttributeSet attrs, int d

Android开发之自己定义TabHost文字及背景(源码分享)

使用TabHost 能够在一个屏幕间进行不同版面的切换,而系统自带的tabhost界面较为朴素,我们应该怎样进行自己定义改动优化呢 MainActivity的源码 package com.dream.ledong; import android.app.TabActivity; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.view.Gr

android 添加行间距

Android系统中TextView默认显示中文时会比较紧凑,不是很美观.为了让每行保持一定的行间距,可以设置属性android:lineSpacingExtra或android:lineSpacingMultiplier. 关于Android下TextView中文换行问题,可查看Android自定义view-文本自动换行. 1.android:lineSpacingExtra 设置行间距,如”3dp”. 2.android:lineSpacingMultiplier 设置行间距的倍数,如”1.