代码改变世界

Dip and Sp

2011-01-18 13:42  RayLee  阅读(277)  评论(0编辑  收藏  举报

Historically, programmers always designed computer interfaces in terms of pixels. For example, you might make a field 300 pixels wide, allow 5 pixels of spacing between columns, and define Icons 16-by-16 pixels in size. The problem is that if you run that program on new displays with more and more dots per inch (dpi), the user interface appears smaller and smaller. At some point, it becomes too hard to read.

Resolution-independent measurements help solve this problem. Android supports all the following units:

  • px (pixels): Dots on the screen
  • in (inches): Size as measured by a ruler
  • mm (millimeters): Size as measured by a ruler
  • pt (points): 1/72 of an inch
  • dp (density-independent pixels): An abstract unit based on the density of the screen. On a display with 160 dots per inch, 1dp = 1px
  • dip: Synonym for dp, used more often in Google examples
  • sp (scale-independent pixels): Similar to dp but also scaled by the user’s font size preference

To make your interface scalable to any current and future type of display, I recommend you always use the sp unit for text sizes and the dip unit for everything else.