您的位置:首页 > 移动开发 > Android开发

Android屏幕适配初探

2015-11-23 14:02 246 查看

Android屏幕适配初探

Android设计指南非官方简体中文版

参考文献http://adchs.github.io/index.html

对android屏幕分辨率,密度,DPI的一个基本了解

分辨率:在屏幕上显示的物理像素总和。需要注意的是尽管分辨率通常用宽x高表示,但分辨率并不意味着具体的屏幕长宽比。例如,800X600就表示宽800像素,高600像素。

DPI:dpi是Dots Per Inch的缩写, 每英寸点数,即每英寸包含像素个数。比如320X480分辨率的手机,宽2英寸,高3英寸, 每英寸包含的像素点的数量为320/2=160dpi(横向)或480/3=160dpi(纵向),160就是这部手机的dpi,横向和纵向的这个值都是相同的,原因是大部分手机屏幕使用正方形的像素点。

密度(density):density和dpi的关系为 density = dpi/160,通过density和dpi之间的关系我们只要得到其中一个值就能算出另一个的值。

我们新建一个Android项目后可以看到很多drawable文件夹,分别对应不同的dpi

drawable-ldpi (dpi=120, density=0.75)

drawable-mdpi (dpi=120~160, density=1)

drawable-hdpi (dpi=160~240, density=1.5)

drawable-xhdpi (dpi=240~320, density=2)

drawable-xxhdpi (dpi=320~480, density=3)

drawable-xxxhdpi (dpi=480~640, density=4)

获取屏幕密度,尺寸,DPI

方法一:

DisplayMetrics outMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(outMetrics);

float density       = outMetrics.density;//屏幕密度(0.75/1.0/1.5)
int densityDpi      = outMetrics.densityDpi;//屏幕密度DPI(120/160/240)
int widthPixels     = outMetrics.widthPixels;// 屏幕宽度(像素)
int heightPixels    = outMetrics.heightPixels;// 屏幕高度(像素)


方法二:

DisplayMetrics outMetrics = getResources().getDisplayMetrics();

float density       = outMetrics.density;// 屏幕密度(0.75 / 1.0 / 1.5)
int densityDpi      = outMetrics.densityDpi;//屏幕密度DPI(120/160/240)
int widthPixels     = outMetrics.widthPixels;// 屏幕宽度(像素)
int heightPixels    = outMetrics.heightPixels;// 屏幕高度(像素)


同时在AndroidManifest.xml中加入如下代码,使程序支持了多种分辨率,从而得到正确的分辨率

<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true"
android:xlargeScreens="true" />


频道分辨率专业术语

屏幕分辨率的一些专业术语

VGA:Video Graphics Array,即:显示绘图矩阵,相当于640×480 像素;

HVGA:Half-size VGA,即:VGA的一半,分辨率为480×320,像三星盖世AceS5830就是使用这分辨率;

QVGA:Quarter VGA,即:VGA的四分之一,分辨率为320×240,一般用于小屏手机 像三星盖世Mini S5570就是使用这分辨率;

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

WVGA:Wide Video Graphics Array,即:扩大的VGA,分辨率为800×480像素,像三星i9000就是使用这分辨率;

FWVGA:Full Wide VGA ,数码产品屏幕材质的一种,VGA的另一种形式,比WVGA分辨率高,别名 : Full Wide VGA, ,其分辨 率为854×480象素(16:9)。

以下是一些常见的分辨率

标屏分辨率宽屏宽屏
QVGA320×240WQVGA400×240
VGA640×480WVGA800×480
SVGA800×600WSVGA1024×600
XGA1024×768WXGA1280×768/1280×800/1280*960
SXGA1280×1024WXGA+1440×900
SXGA+1400×1050WSXGA+1680×1050
UXGA1600×1200WUXGA1920×1200
QXGA2048×1536WQXGA2560×1536

参考文章

Android 获取屏幕尺寸与密度

Android 屏幕适配

Android各种屏幕分辨率(VGA、HVGA、QVGA、WQVGA、WVGA、FWVGA) 详解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: