首页 > 代码库 > Android应用屏幕适应问题的解决

Android应用屏幕适应问题的解决

1、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有个自动匹配机制去选择对应的布局和图片资源。 
  系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。 
  在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片

2. AndroidManifest.xml  android清单也要写入权限才可以,android从1.6和更高,Google为了方便开发者对于各种分辨率机型的移植而增加了自动适配的功能 ,代码如下:

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

其中各个对应的功能简单叙述一下:

android:anyDensity=["true" | "false"]  是否支持多种不同密度的屏幕  true为支持,会根据屏幕的分辨率自动去匹配;false 系统自动缩放图片尺寸和这个图片的坐标。具体解释一下系统是如何自动缩放资源的。 

android:largeScreens=["true" | "false"]  是否支持大屏幕 

android:smallScreens=["true" | "false"] 是否支持小屏幕

android:normalScreens=["true" | "false"用于指示应用程序是否支持普通外形的屏幕