`
fanguanghui
  • 浏览: 96325 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

andriod 界面制作 度量单位说明(dip,dp,px,sp)

阅读更多

在Android 界面制作中会用到的dip、dp、px、sp等单位说明。

 

(一)概念

 

dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。
px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。
pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;
sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。

 

(二)换算(以 sp 和 pt 为例)


  通过查看TextView 等类的源码

 

case COMPLEX_UNIT_PX:
return value;
case COMPLEX_UNIT_SP:
return value * metrics.scaledDensity;
case COMPLEX_UNIT_PT:
return value * metrics.xdpi * (1.0f/72);
--------------------------
scaledDensity = DENSITY_DEVICE / (float) DENSITY_DEFAULT;
xdpi = DENSITY_DEVICE;
--------------------------
DENSITY_DEFAULT = DENSITY_MEDIUM = 160;
 

所以: 假设 pt 和 sp 取相同的值 1,则可设 1pt 和 1sp 之间系数为 x,
1 * DENSITY_DEVICE / 72 = x * 1 * DENSITY_DEVICE / 160 =>
x = 160 / 72 = 2.2222

也就是说在 Android 中, 1pt 大概等于 2.22sp


(三)关系与区别

 

过去,程序员通常以像素为单位设计计算机用户界面。例如,定义一个宽度为300像素的表单字段,列之间的间距为5个像素,图标大小为16×16像素 等。这样处理的问题在于,如果在一个每英寸点数(dpi)更高的新显示器上运行该程序,则用户界面会显得很小。在有些情况下,用户界面可能会小到难以看清 内容。

与分辨率无关的度量单位可以解决这一问题。Android支持下列所有单位。

px(像素):屏幕上的点。

in(英寸):长度单位。

mm(毫米):长度单位。

pt(磅):1/72英寸。

dp(与密度无关的像素):一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。

dip:与dp相同,多用于android/ophone示例中。
sp(与刻度无关的像素):与dp类似,但是可以根据用户的字体大小首选项进行缩放。

 

(四)建议

 

为了使用户界面能够在现在和将来的显示器类型上正常显示,建议大家始终使用sp作为文字大小的单位,将dip或者dp作为其他元素的单位。当然,也可以考虑使用矢量图形,而不是用位图。

 

文章来源: http://www.boxui.com/?p=1533

分享到:
评论

相关推荐

    andriod画界面的工具

    标题提到的"andriod画界面的工具"主要指的是用于设计Android UI的软件或平台。在描述中反复提到了"非常好用",这暗示了我们讨论的工具具有高效率和易用性。从提供的文件名称列表“droiddraw-r1b20”来看,这可能是...

    Andriod聊天界面

    在Android开发中,创建一个聊天界面是常见的任务,尤其对于社交应用或者企业内部沟通工具来说。这个"Android聊天界面"项目提供了一个基础模板,适用于初学者理解和实践Android UI设计。以下将详细介绍如何在Android...

    andriod画板制作教程

    这个“Android画板制作教程”涵盖了如何利用Java编程语言在Android环境中创建一个用户可以自由绘画的交互式界面。下面我们将深入探讨这个教程可能包含的主要知识点: 1. **Android Studio和基本环境搭建**:首先,...

    andriod简单界面开发实例

    andriod简单界面开发实例多图多代码, 比较合适零基础初学者入门,多图让初学者有一个直接的认识,不是简单的hello word程序。 1、andriod开发环境搭建; 2、创建项目,第一个Demo; 3、编写第一个Demo程序; 4、简单...

    android studio 制作简单微信登录界面

    在Android Studio中制作一个简单的微信登录界面涉及到多个技术层面,包括UI设计、微信SDK集成、权限申请以及网络请求处理等。下面将详细讲解这个过程。 首先,我们需要了解Android Studio IDE的基本操作。Android ...

    IOS7 & Andriod界面设计规范

    《iOS 人机界面准则》中文版,iOS 8人机界面指南-UI 设计基础(by ISUX),iOS、Android、WindowsPhone官方设计规范汇总,iOS78、Android 4.4&L、WindowsPhone官方设计规范汇总,Material design非官方中文指导手册1.0

    2048 安卓小游戏 Andriod-Andriod开发与设计结课作业+源代码+文档说明+界面截图

    2048 安卓小游戏 Andriod-Andriod开发与设计结课作业+源代码+文档说明+界面截图 - 运行中有什么问题可以私聊博主,本人高级安卓工程师,主页置顶有常见爆红解决的方法,以及更多代码项目 ## 项目备注 1、该资源内...

    Android Studio+简单的米英尺单位转化app的实现

    总之,该资源是为需要进行度量单位转换的用户提供的一个方便实用的工具,它可以帮助用户快速、准确地进行度量单位转换操作。该转换器应用程序在 Android Studio 跨平台开发的基础上,具有很高的开发稳定性和代码优化...

    基于Android Studio制作的仿QQ界面

    在本项目中,开发者利用Android Studio这一强大的集成开发环境,实现了对QQ应用界面的仿制。这个项目展示了Android开发中的多个关键知识点,包括用户界面设计、数据库管理、动画效果以及列表视图的处理。 首先,从...

    安卓Andriod源码——引导界面viewPager.zip

    在 `安卓Andriod源码——引导界面viewPager.zip` 中,我们可以看到如何将 `ViewPager` 与引导界面结合使用的实例。 1. **引导界面设计** 引导界面的设计通常包括几页静态图片或动画,展示应用的主要特点。在 `...

    andriod基础教程-数独游戏设计用户界面

    在Android平台上设计一款数独游戏,用户界面设计是至关重要的第一步。本教程旨在通过实际的数独游戏项目,帮助读者掌握Android程序设计的基础知识。数独游戏因其规则简单且易于理解,成为了Android应用开发的理想...

    andriod activity说明

    andriod activity入门级介绍资料,对其生命周期介绍的很好

    仿微信朋友圈界面

    在IT行业中,构建一个用户界面(UI)与用户体验(UX)设计是至关重要的。当我们谈论“仿微信朋友圈界面”的开发时,我们实际上是在探讨如何在Android或iOS平台上创建一个类似于微信朋友圈的功能,让用户能够发布文字...

    Andriod使用WebView制作webAPP

    在Android平台上,使用WebView制作WebAPP是一种常见的方法,它允许开发者快速构建应用界面,而无需进行复杂的原生UI设计。WebView本质上是一个可以在Android应用中展示网页的组件,它可以直接加载HTML、CSS和...

    安卓Andriod源码——引导界面仿人人网.zip

    这个“安卓Andriod源码——引导界面仿人人网.zip”文件包含了实现类似人人网引导界面的源代码示例,可以帮助开发者学习和理解如何在自己的安卓应用中创建具有类似效果的引导页。 首先,我们需要了解引导界面的基本...

    Andriod中WebView加载登录界面获取Cookie信息并同步保存,使第二次不用登录也可查看个人信息。

    Android使用WebView加载登录的html界面,则通过登录成功获取Cookie并同步,可以是下一次不用登录也可以查看到个人信息,注:如果初始化加载登录,可通过缓存Cookie信息来验证是否要加载登录界面。Cookie信息包含了你...

    基于andriod的网上影院app的设计与实现(源码 + 说明文档 + 演示视频)

    基于andriod的网上影院app的设计与实现(源码 + 说明文档 + 演示视频) 第4章 系统总体设计 18 4.1 概述 18 4.2 设计原则 18 4.3 Android应用程序结构剖析 18 4.4 系统功能结构图 24 第5章 系统的实现 26 5.1 软件...

    Andriod_SDK_V1.6接口调用说明

    Andriod_SDK_V1.6接口调用说明

    Andriod自己制作任务栏电池数字%显示教程

    这篇教程将教你如何制作自己的任务栏电池数字%显示,让你的Android设备更加独特。 首先,我们需要了解一些基础知识。Android系统允许用户进行深度定制,特别是对于已经root的设备,你可以修改系统级别的资源文件来...

Global site tag (gtag.js) - Google Analytics