一 ttf 和otf的区别

OpenType也叫Type 2字体,是由Microsoft和Adobe公司开发的另外一种字体格式。它也是一种轮廓字体,比TrueType更为强大,最明显的一个好处就是可以在把PostScript字体嵌入到TrueType的软件中。并且还支持多个平台,支持很大的字符集,还有版权保护。可以说它是Type 1和ueType的超集。
OTF主要优点:
1)增强的跨平台功能
2)更好的支持Unicode标准定义的国际字符集
3)支持高级印刷控制能力
4)生成的文件尺寸更小
5)支持在字符集中加入数字签名,保证文件的集成功能
OTF——opentype 苹果机与PC机都能很好应用的兼容字体!
TTF——truetype PC机应用较好,苹果机兼容性很差!
06、07年开始OT全面普及,到现在,很多设计师已经不提供TT版本的作品了,市面上的TT都是历史遗留产。adobe在02年就把旗下产品全部换成OT

二:

TextView 或者EditText 中的text的size属性一般推荐使用sp而不是dp,原因是sp可以跟随字体大小的增大缩小而增大缩小

sp和dp的关系 :

很多文章只是简单的介绍说用于显示文字,但没有深入研究这个单位的区别,
追到Android源码,发现系统内部用applyDimension()将所有单位都转换成px 再处理:

public static float applyDimension(int unit, float value, DisplayMetrics metrics)
{
switch (unit) {
case COMPLEX_UNIT_PX:
return value;
case COMPLEX_UNIT_DIP:
return value * metrics.density;
case COMPLEX_UNIT_SP:
return value * metrics.scaledDensity;
case COMPLEX_UNIT_PT:
return value * metrics.xdpi * (1.0f/72);
case COMPLEX_UNIT_IN:
return value * metrics.xdpi;
case COMPLEX_UNIT_MM:
return value * metrics.xdpi * (1.0f/25.4f);
}
return 0;
} 

所以发现dp和sp的区别在于density和scaledDensity两个值上;

–变量density,
float类型,display的logic-density。是一个scaling-factor,用在Density-Independent-Pixel单位,一个dip就是一个像素。
160dpi的screen提供系统display的baseline。
因此,160dpi的screen-density值为1(160/160),120dpi的screen-density值为0.75(120/160)。
screen-1,已知240x320,1.5”x2” ,可以计算出densityDpi等于160。即240/1.5=160,或320/2=160。再通过densityDpi/160计算出density的值1.0。
screen-2,已知320x480,1.5”x2”,可以计算出densityDpi等于240。即320/1.5=240,或480/2=240。再通过densityDpi/160计算出density的值1.5。

–关于scaledDensity
float类型,一个scaling-factor,用于fonts显示,同density相同的值,除非由于基于font-size上的体验需要做微调。
–TyuMainApp.getApp().getResources().getDisplayMetrics()对象中的属性值

总结一下:
dp只跟屏幕的像素密度有关;
sp和dp很类似但唯一的区别是,android系统允许用户自定义文字尺寸大小(小、正常、大、超大等等),当文字尺寸是“正常”时1sp=1dp=0.00625英寸,而当文字尺寸是“大”或“超大”时,1sp>1dp=0.00625英寸。类似我们在windows里调整字体尺寸以后的效果——窗口大小不变,只有文字大小改变。
示例图:(测试机器 三星note2)
布局文件:

<Buttonandroid:layout_width="100dp"android:layout_height="wrap_content"android:text="100dp"android:id="@+id/button" />
<Buttonandroid:layout_width="100sp"android:layout_height="wrap_content"android:text="100sp  "android:id="@+id/button2" />

当系统字体大小设置为正常时:
这里写图片描述这里写图片描述

当系统字体大小设置为微小时:
这里写图片描述这里写图片描述

正文结束
附加一些android屏幕分辨知识做链接
信息来源:鸿洋大神的博客
Android 屏幕适配方案
提出用百分比和dp换算来解决关于屏幕适配问题的方案,很有思考价值;
Android AutoLayout全新的适配方式 堪称适配终结者
提供了一种根据美工图可以直接写布局,不用考虑px和dp换算的方法,福音啊~~~,稳定和性能还有待测试证明;

关于屏幕分辨率和密度:
密度值表示每英寸有多少个显示点,与分辨率是两个概念。
其屏幕密度标准是:HVGA屏density=160;QVGA屏density=120;WVGA屏density=240;WQVGA屏density=120
具体的应用运算关系:假设分辨率是 x*y, 密度为 d, 屏幕实际大小为 a*b那么关系为 x*y = d * a * b (约等于)
不同density下屏幕分辨率信息,以480dip*800dip的 WVGA(density=240)为例density=120时 屏幕实际分辨率为240px*400px (两个点对应一个分辨率)


以及xxxhdpi和4K分辨率分辨率对应dpi
dpi(dots per inch,每英寸点数)
HVGA : 320x480
WVGA:800x480
FWVGA:854x480
QHD:960x540
720P:1280x720(标清,standard definition,SD)
1080P:1920x1080(高清,high definition,HD)mdpi对应HVGA(标准)
hdpi对应WVGA、FWVGA、QHD。
xhdpi对应720P。
xxhdpi对应1080P。

参考文章http://blog.csdn.net/u010181592/article/details/50012397

dp和sp的区别 以及字体相关推荐

  1. .net开发安卓入门 - 布局与样式(像素单位px、dp、sp的区别)

    .net开发安卓入门 - 布局与样式 布局 LinearLayout RelativeLayout TableLayout RecyclerView ListView GridView GridLay ...

  2. android设备的屏幕单位中的px(像素)、dp与sp的区别以及换算

    1.px 即像素,1px代表屏幕上的一个物理像素点. "pixel" 的缩写,像素.是画面显示的基本单位,真实的像素并不是点或者方块(虽然有时这样显示),也没有实际固定长度,只是一 ...

  3. px,dp与sp的区别以及换算

    1.px 即像素,1px代表屏幕上的一个物理像素点. "pixel" 的缩写,像素.是画面显示的基本单位,真实的像素并不是点或者方块(虽然有时这样显示),也没有实际固定长度,只是一 ...

  4. Android的px、dp、sp的区别

    相信每个Android新手都会遇到这个问题,希望这篇帖子能让你不再纠结. px: 即像素,1px代表屏幕上一个物理的像素点: px单位不被建议使用,因为同样100px的图片,在不同手机上显示的实际大小 ...

  5. 浅谈屏幕适配 dp dip sp dpi ppi px sp

    一.Drawable资源文件夹之间的关系 Android开发中,UI一般会制作多种图片素材,根据素材的分辨率大小,放在如下几个文件夹中: Android 工程里 res 目录下的 drawable-h ...

  6. android auto 字体大小,Android中给TextView字体大小用dp还是sp?dp和sp有什么区别?

    dp,sp都会根据屏幕ppi显示大小不同. ppi的运算方式是: PPI = (开根号(长度像素数² + 宽度像素数²)) / 屏幕对角线英寸数 dp:Density-independent pixe ...

  7. dp、sp和px的区别

    参考链接1:http://blog.sina.com.cn/s/blog_4d59e3c70100o2so.html 看到有很多网友不太理解dp.sp和px的区别:现在这里介绍一下dp和sp.dp也就 ...

  8. “ px”,“ dip”,“ dp”和“ sp”有什么区别?

    Android度量单位有什么区别? 像素 蘸 dp SP #1楼 我将详细说明dp如何精确转换为px: 如果在mdpi设备上运行,则150 x 150 px图像将占用150 * 150 dp的屏幕空间 ...

  9. dpi与dp的关系_px、dp、sp、dpi之间的区别和转换

    px.dp.sp.dpi之间的区别和转换 区别: px (pixels)像素 -- 是像素,就是屏幕上实际的像素点单位.(一般UI人员在ps中经常使用) dp/dip 设备独立像素,android l ...

最新文章

  1. matlab 多目标规划
  2. tunctl used bridge sub interface network used with multi-network env
  3. c语言是静态语言python语言是脚本语言对吗_初中生想学编程,请问先学C语言好还是先学Python?...
  4. JSK-27 三值排序【贪心】
  5. 【NOIP2012】【Luogu1075】质因数分解(模拟)
  6. xml、xhtml、html、dhtml的区别
  7. java-jdk环境下载
  8. vc6.0怎么新建c语言项目
  9. PPT一般使用技巧总结
  10. zigbee Zstack 中串口操作的深度解析、一
  11. llvm Pass简单实例
  12. Linux内核version magic不一致问题
  13. RabbitMQ学习笔记:消息优先级(priority)
  14. python查看mac的usb信息_Python实现的读取电脑硬件信息功能示例
  15. AE开发之主窗体通过Base Comand和IHookHelper接口向子窗体转递图层信息方法模板
  16. Android开源库集锦 + Android场景桌面(一) 转自way
  17. 微信小程序 table表格 固定表头和首列 右侧表格可以左右滚动(多种表格演练)
  18. 计算机的内存的作用是什么,电脑内存的作用是什么?
  19. python二级真题 d[i] = d.get(i,0)+1
  20. 针对秒杀项目做的一些优化

热门文章

  1. RPA如何应用于银行渠道建设
  2. 各大平板电视厂商的音效技术
  3. 干货 | 每天上百万通话,携程电话系统性能测试实践
  4. 黄金分割――设计师的设计利器
  5. 炎炎夏日,教大家正确选用净水器的8个要点!
  6. HDU 1203 I NEED A OFFER!
  7. linux查看开了哪些端口号_Linux如何查看服务器开放的端口号
  8. 计算机无法播放视频,电脑播放器无法播放视频怎么处理
  9. 将沁园春长沙写出来使用html css,高一语文教案:《沁园春长沙》教案设计二
  10. php jquery代码模板下载地址,生成迅雷地址php代码