`
日光倾城。
  • 浏览: 83292 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

android UI单位

阅读更多
dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果。
px: pixels(像素). 不同设备显示效果相同。
pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;
sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。

由此,根据 google 的建议,TextView 的字号最好使用 sp 做单位,而且查看
TextView
的源码可知 Android 默认使用 sp 作为字号单位。

3. 关于换算(以 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

以上供参考,如果 UI 能够以 sp 为单位提供设计是最好的,如果设计中没有 sp
的概念,则开发人员也可以通过适当的换算取近似值。


转载内容: http://hi.baidu.com/lfcaolibin/blog/item/f3f60d1e438deefee0fe0bae.html
什么是Dip和Sp

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

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

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

in(英寸):长度单位。

mm(毫米):长度单位。

pt(磅):1/72英寸。

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

dip:与dp相同,多用于Google示例中。

sp(与刻度无关的像素):与dp类似,但是可以根据用户的字体大小首选项进行缩放。

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

相关推荐

    Android UI规范

    Android UI设计规范文档 1 设计原则 2 风格 2.1 设备和显示 Android 驱动了数百万的手机、平板和其它设备,兼容了各种屏幕宽度和比例。利用 Android 灵活的布局系统,您可以创造出从平板到手机都看起来很优雅的应用...

    SwissArmyKnife-android免root兼容所有版本ui调试工具.zip

    SwissArmyKnife是什么SwissArmyKnife 是一款方便调试android UI的工具,可以兼容所有android版本,不需要root权限。可以直接在android手机屏幕上显示当前Activity中所有控件(不管是否隐藏)的边界,内外边距大小,...

    UI,提供 android 折现图、图形图,扇形图,渐变图等常用报表 ui,功能强大,一个报表一个类,代码十分简单,易修改易维护,绘制性能高效,库没有导入其他的第三方包,干净整洁。 主要是: 承办单位、承办单位、承办单位.zip

    提供 android 折现图、图形图,扇形图,渐变图等常用报表 ui,功能强大,一个报表一个类,代码十分简单,易修改易维护,绘制性能高效,库没有导入其他的第三方包,干净整洁。

    5.Android界面编程(2)单位换算与UI适配.ppt

    5.Android界面编程(2)单位换算与UI适配.ppt

    【Android】Android UI 开发_问答_1

    ContentUI 概览显示度量单位 UI 概览 定义布局的手段有几种? 两种声明布局的方式: <在 XML 中声明 UI 例如 元素用于创建一个 LinearLayout 视图组 (ViewGroup) <运行时实例化布局元素,编程创建 View 和 ...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    iot-ui-android-mqtt:旧保险丝IoT Android UI应用程序

    主要作者:吉姆·怀特语言:Android v14或更高版本(Java 7) 这是一个Android应用程序,它将通过MQTT消息通过MQTT设备服务将电池,光线,地理信息(高度,速度,纬度/经度)和方向(以北为单位的方向)数据发送到...

    Android studio界面设计与资源PPT

    (1)理解Android屏幕元素的层次结构、View与ViewGroup (2)熟悉Android的布局...(4)熟悉Android尺寸的单位 (5)掌握TextView、EditText、Button、DatePicker、TimePicker等常用控件的功能、基本属性以及重要方法

    Android---课程设计

    2.计算收集时长(单位:ms) 3.连续计时(允许中断) 4.秒表 5.启动/关闭键(绿表停,红表运行) 6.采集的数据以文件形式保存,路径:storage/sdcard0/222.txt 技术: 1.UI界面 2.传感器管理器API 3.多线程 4.文件...

    android群雄传

    12.1 Android 5.X UI设计初步 258 12.1.1 材料的形态模拟 258 12.1.2 更加真实的动画 258 12.1.3 大色块的使用 259 12.2 Material Design主题 260 12.3 Palette 261 12.4 视图与阴影 263 12.5 Tinting和...

    android学习文档

    5.2 UI控件: 15 5.3 应用程序权限 15 6、第一个android应用程序 15 7、Android组件介绍 20 三、Android应用程序架构分析 21 1、Android布局组件介绍及其实例分析 21 2.1 布局组件概述 21 2.1.1 五大布局: 21 2.1.2...

    深入理解Android:卷I--详细书签版

    8.2.2 Activity的UI绘制 294 8.2.3 关于Activity的总结 296 8.3 初识Surface 297 8.3.1 和Surface有关的流程总结 297 8.3.2 Surface之乾坤大挪移 298 8.3.3 乾坤大挪移的JNI层分析 303 8.3.4 Surface和画图 ...

    Android开发资料合集-World版!

    9.5、ANDROID常用单位 196 9.6、取得屏幕信息 197 9.7、横竖屏 197 9.8、程序完全全屏 200 9.8.1锁屏锁键盘 200 9.9、程序的开机启动 201 9.10、动态START页面 208 9.11、彻底退出当前程序 212 9.12、获取应用程序的...

    Android 开发技巧

    9.5、ANDROID常用单位 196 9.6、取得屏幕信息 197 9.7、横竖屏 197 9.8、程序完全全屏 200 9.8.1锁屏锁键盘 200 9.9、程序的开机启动 201 9.10、动态START页面 208 9.11、彻底退出当前程序 212 9.12、获取应用程序的...

    Android知识点及重要代码合集 word文档

    3.1 sp、dp、dip、pt、px等单位的区别 17 3.2 TextView属性 18 3.3跑马灯效果的最小代码集 19 3.4给按钮注册点击事件的方式 19 3.5 EditText属性 20 3.6 simple_list_item_1是什么 21 3.7 ImageView的属性 22 3.8 ...

    RandRoidGrid:Android 网格视图,以不同尺寸和形状的正方形和矩形随机显示一组视图

    #RandRoidGrid Android UI 布局在随机框中显示视图。 有 4 种类型的框可能以不同的随机顺序出现在布局中: 大正方形:(2 个单位 x 2 个单位)。 小正方形:(1 个单位 x 1 个单位)。 垂直矩形:(1 个单位 x 2 个...

    Android中的事件处理总结

    Android的UI组件(事件源)将整个事件处理委托给特定的对象(事件监听器);当该事件源发生指定的事件时,就通知所委托的事件监听器,由事件监听器来处理事件。例如:消防所(事件监听器)监听所有的火灾事件并处理...

    android系统如何自适应屏幕大小

    当你定义应用的布局的UI时应该使用dp单位,确保UI在不同的屏幕上正确显示。 手机屏幕分类和像素密度的对应关系如表1所示 目前主要是以分辨率为800*480和854*480的手机用户居多 从以上的屏幕尺寸分布情况上看,...

    android开发--图像处理

    当你设计你的程序的时候,你可以用风格和主题来统一格式化各种屏幕和UI元素。 • 风格是一个包含一种或者多种格式化属性的集合,你可以将其用为一个单位用在布局XML单个元素 当中。比如,你可以定义一种风格来定义...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    申请学位类别 工 程 硕 士 学位授予单位 东 南 大 学 工程领域名称 软 件 工 程 论文答辩日期 研究方向 Android+HTML5 学位授予日期 答辩委员会主席 评阅人 硕士学位论文 基于Android+HTML5的移动...

Global site tag (gtag.js) - Google Analytics