1、几个术语
VGA、HVGA、QVGA、WVGA、WQVGA
这些术语都是指屏幕的分辨率。
VGA:Video Graphics Array,即:显示绘图矩阵,相当于640×480 像素;
HVGA:Half-size VGA;即:VGA的一半,分辨率为480×320;
QVGA:Quarter VGA;即:VGA的四分之一,分辨率为320×240;
WVGA:Wide Video Graphics Array;即:扩大的VGA,分辨率为800×480像素;

WQVGA:Wide Quarter VGA;即:扩大的QVGA,分辨率比QVGA高,比VGA低,一般是:400×240,480×272;

以下列出了常见的分辨率类型。
QVGA = 320 * 240; WQVGA = 320 * 480; WQVGA2 = 400 * 240; WQVGA3 = 432 * 240; HVGA = 480 * 320; VGA = 640 * 480; WVGA = 800 * 480; WVGA2 = 768 * 480; FWVGA = 854 * 480; DVGA = 960 * 640; PAL = 576 * 520; NTSC = 486 * 440; SVGA = 800 * 600; WSVGA = 1024 * 576; XGA = 1024 * 768; XGAPLUS = 1152 * 864; HD720 = 1280 * 720; WXGA = 1280 * 768; WXGA2 = 1280 * 800; WXGA3 = 1280 * 854; SXGA = 1280 * 1024; WXGA4 = 1366 * 768; SXGAMINUS = 1280 * 960; SXGAPLUS = 1400 * 1050; WXGAPLUS = 1440 * 900; HD900 = 1600 * 900; WSXGA = 1600 * 1024; WSXGAPLUS = 1680 * 1050; UXGA = 1600 * 1200; HD1080 = 1920 * 1080; QWXGA = 2048 * 1152; WUXGA = 1920 * 1200; TXGA = 1920 * 1400; QXGA = 2048 * 1536; WQHD = 2560 * 1440; WQXGA = 2560 * 1600; QSXGA = 2560 * 2048; QSXGAPLUS = 2800 * 2100; WQSXGA = 3200 * 2048; QUXGA = 3200 * 2400; QFHD = 3840 * 2160; WQUXGA = 3840 * 2400; HD4K = 4096 * 2304; HXGA = 4096 * 3072; WHXGA = 5120 * 3200; HSXGA = 5120 * 4096; WHSXGA = 6400 * 4096; HUXGA = 6400 * 4800; SHV = 7680 * 4320; WHUXGA = 7680 * 4800;


px:(pixels)(像素):屏幕上的点,表示屏幕实际的象素,与密度相关。密度大了,单位面积上的px会比较多。例如,320*480的屏幕在横向有320个象素,在纵向有480个象素。

dip或dp(与密度无关的像素)。这个和设备硬件有关,为了支持WVGA、HVGA和QVGA 5进制空间推荐使用这个。一种基于屏幕密度的抽象单位。设置一些view的宽高可以用这个,一般情况下,在不同分辨率,都不会有缩放的感觉。

px与dip的换算公式:
px = (density/160)*dip density一般为3个常用固定值240/160/120

scaledDensity (字体缩放比例)。即 单位 sp 的 换算值。 一般用在设定字体大小中
sp放大像素– 主要处理字体的大小。dp是与密度无关,sp除了与密度无关外,还与scale无关。
sp与px的换算公式:

DisplayMetrics dm = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);pixelSize = (int)scaledPixelSize * dm.scaledDensity; 
in:表示英寸,是屏幕的物理尺寸。每英寸等于2.54厘米。例如,形容手机屏幕大小,经常说,3.2(英)寸、3.5(英)寸、4(英)寸就是指这个单位。这些尺寸是屏幕的对角线长度。如果手机的屏幕是3.2英寸,表示手机的屏幕(可视区域)对角线长度是3.2*2.54 = 8.128厘米
pt:表示一个点,是屏幕的一个物理长度,大小为1英寸的1/72。
密度Density:根据像素分辨率,在屏幕指定物理宽高范围内能显示的像素数量,一般为一英寸能显示的像素。


2、一些参数
常见手机屏幕分辩率(希望大家可以补充)
小米3
density=3.0, width=1080, height=1920, scaledDensity=3.0, xdpi=449.704, ydpi=447.412
小米2
density=2.0, width=720, height=1280, scaledDensity=2.0, xdpi=345.0566, ydpi=342.23157
魅族3
density=2.5, width=1080, height=1800, scaledDensity=2.5, xdpi=415.636, ydpi=415.636
三星s3
density=2.0, width=720, height=1280, scaledDensity=2.0, xdpi=304.8, ydpi=306.716
Motorola Me525 Android2.2.2
density=1.5, width=480, height=854, scaledDensity=1.5, xdpi=144.0, ydpi=144.0


屏幕大小和密度对照表
屏幕 宽度 高度 尺寸 大小 密度
Type (Pixels) (Pixels) Range (inches) Size Group

QVGA 240 320 2.6 - 3.0 Small Low
WQVGA 240 400 3.2 - 3.5 Normal Low
FWQVGA 240 432 3.5 - 3.8 Normal Low
HVGA 320 480 3.0 - 3.5 Normal Medium
WVGA 480 800 3.3 - 4.0 Normal High
FWVGA 480 854 3.5 - 4.0 Normal High
WVGA 480 800 4.8 - 5.5 Large Medium
FWVGA 480 854 5.0 - 5.8 Large Medium

3、一些有用的代码

mport android.content.Context;import android.util.DisplayMetrics;/** * 计算公式 pixels = dips * (density / 160) *  * @version 1.0.1 2010-12-11 *  * @author */public class DensityUtil {private static final String TAG = DensityUtil.class.getSimpleName();// 当前屏幕的densityDpiprivate static float dmDensityDpi = 0.0f;private static DisplayMetrics dm;private static float scale = 0.0f;/** *  * 根据构造函数获得当前手机的屏幕系数 *  * */public DensityUtil(Context context) {// 获取当前屏幕dm = new DisplayMetrics();dm = context.getApplicationContext().getResources().getDisplayMetrics();// 设置DensityDpisetDmDensityDpi(dm.densityDpi);// 密度因子scale = getDmDensityDpi() / 160;Logger.i(TAG, toString());}/** * 当前屏幕的density因子 *  * @param DmDensity * @retrun DmDensity Getter * */public static float getDmDensityDpi() {return dmDensityDpi;}/** * 当前屏幕的density因子 *  * @param DmDensity * @retrun DmDensity Setter * */public static void setDmDensityDpi(float dmDensityDpi) {DensityUtil.dmDensityDpi = dmDensityDpi;}/** * 密度转换像素 * */public static int dip2px(float dipValue) {return (int) (dipValue * scale + 0.5f);}/** * 像素转换密度 * */public int px2dip(float pxValue) {return (int) (pxValue / scale + 0.5f);}@Overridepublic String toString() {return " dmDensityDpi:" + dmDensityDpi;}}



更多相关文章

  1. android屏幕适配布局和字体
  2. 平板上只能竖着启动app,横着打不开
  3. Android让手机主动亮屏的代码
  4. 如何在代码中动态设置字体大小
  5. 自定义栈管理android的Activity
  6. Android各种屏幕的分布率以及自适应各种屏幕的开发研究
  7. android――屏幕分辨率
  8. Android(安卓)资源文件的命名规则
  9. Android的分辨率

随机推荐

  1. 正确的Flutter和Android交互代码
  2. android进程间服务通信
  3. 关于android的9path图片处理
  4. MediaScanner源码分析
  5. Android(安卓)touch screen keyboard 移
  6. Android客户端与服务器交互方式(1)
  7. vue结合android,mint中popup和picker实现
  8. Android版本更新(断点下载)
  9. 探究J2ME和Android的几大区别
  10. android微信朋友圈分享