`

ndroid的px、dip、sp的区别

阅读更多

一、       概述

dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。  好了,入正题吧,先说说px,px就是像素,如果用px,就会用实际像素画,比个如吧,用画一条长度为240px的横线,在480宽的模拟器上看就是一半的屏宽,而在320宽的模拟器上看就是2/3的屏宽了。  而dip,就是把屏幕的高分成480分,宽分成320分。比如你做一条160dip的横线,无论你在320还480的模拟器上,都是一半屏的长度。


px (pixels)像素 -- 一般我们HVGA代表320x480像素,这个用的比较多。


dip或dp (device independent pixels)设备独立像素 -- 这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA cwj推荐使用这个,不依赖像素。


sp (scaled pixels — best for text size)放大像素-- 主要处理字体的大小。


下面的几个是不常用的,大家也知道这里不再过多的赘述。


in (inches)英寸


mm (millimeters)毫米 


pt (points)点




android:numColumns="auto_fit" ,GridView的列数设置为自动 


android:columnWidth="90dp",每列的宽度,也就是Item的宽度 

android:stretchMode="columnWidth",缩放与列宽大小同步 

android:verticalSpacing="10dp",两行之间的边距,如:行一(NO.0~NO.2)与行二(NO.3~NO.5)间距为10dp 

android:horizontalSpacing="10dp",两列之间的边距。

二、       详解

sp 由于是放大像素,主要是用于字体显示,由此根据 google 的建议, TextView 的字体大小最好用 sp 做单位,而且查看 TextView 的源码可知 Android 默认使用水平作为字号单位。

 Android 中最常用到的还是 px  dip 。但是这两个之间到底有什么区别呢?

 HVGA  density=160 ; QVGA 屏 density=120 ; WVGA 屏 density=240 ; WQVGA 屏 density=120 density 值 表示每英寸有多少个 显 示点,与分辨率是两个概念 。不同 density 下 屏幕 分辨率信息,以480dip*800dip 的 WVGA(density=240) 为 例。

 

density=120  屏幕 实际 分辨率  240px*400px (两个点 对应 一个分辨率) 
    标题栏 高各 19px 或者 25dip   
横屏是屏幕   400px 或者 800dip, 工作区域高度 211px 或者 480dip 
   屏幕   240px 或者 480dip, 工作区域高度 381px 或者 775dip

 

density=160  屏幕 实际 分辨率  320px*533px  3 个点 对应 两个分辨率) 
 态栏  标题栏 高个 25px 或者 25dip   
横屏是屏幕   533px 或者 800dip, 工作区域高度 295px 或者 480dip 
   屏幕   320px 或者 480dip, 工作区域高度 508px 或者 775dip

 

density=240  屏幕 实际 分辨率  480px*800px (一个点  于一个分辨率) 
 态栏  标题栏 高个 38px 或者 25dip   
横屏是屏幕   800px 或者 800dip, 工作区域高度 442px 或者 480dip 
   屏幕   480px 或者 480dip, 工作区域高度 762px 或者 775dip

 

 


apk    包中,当屏幕 density=240  使用 hdpi 标签    
当屏幕 density=160  ,使用 mdpi 标签    
当屏幕 density=120  ,使用 ldpi 标签   源。 
不加任何 标签   源是各种分辨率情况下共用的 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics