第一行代码-3.6 单位和尺寸
2016-02-05 11:30
141 查看
1、px和pt
px表示像素,也就是屏幕中可以显示的最小元素单元。我们应用里任何可见的东西都是由一个个像素点组成的。单独一个像素点非常的微小,肉眼是无法看见的,可是当许许多多的像素点聚集到一起时,就可以拼接成五彩缤纷的图案。
pt是磅数,一磅约等于1/72英寸,一般作为字体的单位使用。
在PC上的时候,px和pt使用得心应手,但是由于手机的分辨率各不相同,相同的px在分辨率小的手机上比较合适的,在分辨率大的手机上就会显得比较小。(前提:两个手机一样大)
2、dp和sp
dp 是密度无关像素的意思,也被称作dip,和px 相比,它在不同密度的屏幕中的显示比例将保持一致。
sp 是可伸缩像素的意思,它采用了和dp 同样的设计理念,解决了文字大小的适配问题。
那么相同的dp是怎么保证显示效果的一致呢?这里要谈到另一个概念:dpi(屏幕每英寸包含的像素数),比如一个手机屏幕的宽是2 英寸长是3 英寸,如果它的分辨率是320*480 像素,那这个屏幕的密度就是160dpi,如果它的分辨率是640*960,那这个屏幕的密度就是320dpi,因此密度值越高的屏幕显示的效果就越精细。
所以dp*dpi才是显示到手机的像素数。dpi高的手机,需要更多的像素才能达到相同的效果。
通过下面的代码可以显示手机的dpi:
![](http://img.blog.csdn.net/20160205113756786)
根据Android 的规定,在160dpi 的屏幕上,1dp 等于1px,而在320dpi 的屏幕上,1dp就等于2px。因此,使用dp 来指定控件的宽和高,就可以保证控件在不同密度的屏幕中的显示比例保持一致。
所以对于我现在正在调试的手机来说,指定宽度为200dp和200*3/2=300px的效果应该是一样的。测试代码如下:
实际效果如下:
px表示像素,也就是屏幕中可以显示的最小元素单元。我们应用里任何可见的东西都是由一个个像素点组成的。单独一个像素点非常的微小,肉眼是无法看见的,可是当许许多多的像素点聚集到一起时,就可以拼接成五彩缤纷的图案。
pt是磅数,一磅约等于1/72英寸,一般作为字体的单位使用。
在PC上的时候,px和pt使用得心应手,但是由于手机的分辨率各不相同,相同的px在分辨率小的手机上比较合适的,在分辨率大的手机上就会显得比较小。(前提:两个手机一样大)
2、dp和sp
dp 是密度无关像素的意思,也被称作dip,和px 相比,它在不同密度的屏幕中的显示比例将保持一致。
sp 是可伸缩像素的意思,它采用了和dp 同样的设计理念,解决了文字大小的适配问题。
那么相同的dp是怎么保证显示效果的一致呢?这里要谈到另一个概念:dpi(屏幕每英寸包含的像素数),比如一个手机屏幕的宽是2 英寸长是3 英寸,如果它的分辨率是320*480 像素,那这个屏幕的密度就是160dpi,如果它的分辨率是640*960,那这个屏幕的密度就是320dpi,因此密度值越高的屏幕显示的效果就越精细。
所以dp*dpi才是显示到手机的像素数。dpi高的手机,需要更多的像素才能达到相同的效果。
通过下面的代码可以显示手机的dpi:
float xdpi = getResources().getDisplayMetrics().xdpi; float ydpi = getResources().getDisplayMetrics().ydpi;
根据Android 的规定,在160dpi 的屏幕上,1dp 等于1px,而在320dpi 的屏幕上,1dp就等于2px。因此,使用dp 来指定控件的宽和高,就可以保证控件在不同密度的屏幕中的显示比例保持一致。
所以对于我现在正在调试的手机来说,指定宽度为200dp和200*3/2=300px的效果应该是一样的。测试代码如下:
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"> <Button android:layout_width="300px" android:layout_height="wrap_content" android:text="button1"/> <Button android:layout_width="200dp" android:layout_height="wrap_content" android:text="button2"/> </LinearLayout>
实际效果如下:
相关文章推荐
- C++ 学习之函数重载、基于const的重载
- PHP连接MSSQL方法汇总
- OpenGL编程指南之阅读笔记 第二章 状态管理和绘制几何物体
- Eclipse一步一步搭建SSM+Maven
- Eclispe 生成JAVADOC 报java.lang.IllegalArgumentException解决方案
- IPython
- Java学习笔记1:java后台写接口,使用AES和RSA
- ASP.NET 系列:单元测试之StructureMap
- Python:logging日志模块
- WordPress插件入口菜单创建的位置代码
- AS2.0大步更新 Google强势逆天
- const char * 和 char const * 和 char * const 区别
- C/C++程序到内存分配个人总结
- 关于java list集合的for遍历和Iterator遍历的随想
- Matlab 点阵四维表示
- 第二届蓝桥杯C/C++组第八题 三角螺旋阵
- java泛型类为什么不能声持有类型的静态变量
- PHP面向对象深入研究之【对象生成】
- 类型转换异常处理java.lang.RuntimeException
- 类型转换异常处理java.lang.RuntimeException