Android屏幕适配初探

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) 详解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值