Android提供3种方式处理屏幕自适应

1预缩放的资源(基于尺寸和密度去寻找图片)


1)如果找到相应的尺寸和密度,则利用这些图片进行无缩放显示。


2)如果没法找到相应的尺寸,而找到密度,则认为该图片尺寸为 "medium",利用缩放显示这个图片。


3)如果都无法匹配,则使用默认图片进行缩放显示。默认图片默认标配 "medium" (160)。


2自动缩放的像素尺寸和坐标(密度兼容)


1)如果应用程序不支持不同密度android:anyDensity="false",系统自动缩放图片尺寸和这个图片的坐标。


2)对于预缩放的资源,当android:anyDensity="false",也不生效。


3)android:anyDensity="false",只对密度兼容起作用,尺寸兼容没效果


3兼容更大的屏幕和尺寸(尺寸兼容)


1)对于你在声明不支持的大屏幕,而这个屏幕尺寸是normal的话,系统使用尺寸为    ("normal")和密度为("medium)显示。


2.)对于你在声明不支持的大屏幕,而这个屏幕尺寸是larger的话,系统同样使用尺寸为("normal")和密度为("medium)显示,


不过会出现一层黑色的背景。

android多屏幕支持机制

Android的支持多屏幕机制即用为当前设备屏幕提供一种合适的方式来共同管理并解析应用资源。
Android平台中支持一系列你所提供的指定大小(size-specific),指定密度(density-specific)的合适资源。
指定大小(size-specific)的合适资源是指small, normal, large, and xlarge。
指定密度(density-specific)的合适资源,是指ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high).
Android有个自动匹配机制去选择对应的布局和图片资源
1)界面布局方面
   根据物理尺寸的大小准备5套布局:
    layout(放一些通用布局xml文件,比如界面顶部和底部的布局,不会随着屏幕大小变化,类似windos窗口的title bar),
    layout-small(屏幕尺寸小于3英寸左右的布局), 
    layout-normal(屏幕尺寸小于4.5英寸左右),
    layout-large(4英寸-7英寸之间),
    layout-xlarge(7-10英寸之间)
2)图片资源方面
  需要根据dpi值准备5套图片资源:
    drawable:主要放置xml配置文件或者对分辨率要求较低的图片
    drawalbe-ldpi:低分辨率的图片,如QVGA (240x320)
    drawable-mdpi:中等分辨率的图片,如HVGA (320x480)
    drawable-hdpi:高分辨率的图片,如WVGA (480x800),FWVGA (480x854)
    drawable-xhdpi:至少960dp x 720dp
Android有个自动匹配机制去选择对应的布局和图片资源。
  系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。
  在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。