Android屏幕适配初探

来源:互联网 发布:上海知柚公司图片 编辑:程序博客网 时间:2024/05/22 15:50

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)。


以下是一些常见的分辨率

标屏 分辨率 宽屏 宽屏 QVGA 320×240 WQVGA 400×240 VGA 640×480 WVGA 800×480 SVGA 800×600 WSVGA 1024×600 XGA 1024×768 WXGA 1280×768/1280×800/1280*960 SXGA 1280×1024 WXGA+ 1440×900 SXGA+ 1400×1050 WSXGA+ 1680×1050 UXGA 1600×1200 WUXGA 1920×1200 QXGA 2048×1536 WQXGA 2560×1536

参考文章

Android 获取屏幕尺寸与密度
Android 屏幕适配
Android各种屏幕分辨率(VGA、HVGA、QVGA、WQVGA、WVGA、FWVGA) 详解

0 0
原创粉丝点击