android快速上手(四)屏幕分辨率和单位概念浅析

物理尺寸:屏幕对角线的长度,如4寸(3寸=10cm)

分辨率:屏幕显示的总像素,如480*800(宽480个像素点,高800像素点)

像素密度:dpi,每英寸点数(1英寸=2.54cm)

某边的分辨率(总像素数)= 该边物理尺寸(单位是英寸) × 像素密度

手机屏幕密度:低密度(ldpi,120dpi),中密度(mdpi,160dpi),高密度(hdpi,240dpi),超高密度(xhdpi,320dpi)等


px:屏幕实际的象素。例如,320*480的屏幕在横向有320个象素,在纵向有480个象素。

dip:设备独立像素,以160dpi的设备为参照,在160dpi设备上1dip=1px,pixs = dips * (density/160)

dp:等同于dip

sp:用于标识字体的,它不仅跟屏幕尺寸有关,还跟设置的系统字体大小有关,用户修改系统字体大小会改变字体。

根据 google 的建议,TextView 的字号最好使用 sp 做单位,而且查看TextView的源码可知 Android 默认使用 sp 作为字号单位。在160dpi屏幕中,当字体大小为100%的时候,1sp=1px。

public void setTextSize(float size) {
        setTextSize(TypedValue.COMPLEX_UNIT_SP, size);
    }
用sp和dp代替px,在不同dpi屏幕下,呈现的高度大小是相同的,更接近物理呈现。

android快速上手(四)屏幕分辨率和单位概念浅析

上一篇:jquery 页眉单行信息滚动显示


下一篇:[5.1] D3.js中整合坐标轴 - 图表 - 文字标签