Android中的适配分为三方面 一、语言适配(I18N语言国际化) MyProject/ res/ values/ strings.xml values-es/ strings.xml values-fr/ strings.xml 1.在res文件夹下创建不同的values文件后缀为当前需要适配的语言编码 2.不同的values文件夹下文件名称和文件结构完全相同 唯一不同就是<String>标签中的内容不同 需要根据指定的语言编码设置 3.当app发布到设备时 系统会检测当前的语言设置 如果存在当前设备的语言就加载相应的文件夹中的字符串 如果没有进行适配 调用默认的strings.xml文件中的字符串 二、屏幕适配 屏幕适配分两方面:屏幕的尺寸 屏幕的密度(分辨率)(其实说到这里应该简单的在穿插一些关于dip,dp,sp,px之间的关系这个放到最后说) 有四种广义的尺寸:小,正常,大, XLARGE
他们的标准尺寸分别为: 超大屏幕至少960dp x 720dp 大屏幕至少640dp x 480dp 标准屏幕至少470dp x 320dp 小屏幕至少426dp x 320dp 六种广义密度:低( LDPI )120 ,中( MDPI )160 ,高(华电国际)240 ,特高( xhdpi )320++ 分别为: ldpi (low) ~120dpi mdpi (medium) ~160dpi hdpi (high) ~240dpi xhdpi (extra-high) ~320dpi xxhdpi (extra-extra-high) ~480dpi xxxhdpi (extra-extra-extra-high) ~640dpi 屏幕的尺寸(布局文件) MyProject/ res/ layout/ # default (portrait) main.xml layout-land/ # landscape main.xml layout-large/ # large (portrait) main.xml layout-large-land/ # large landscape main.xml layout-sw600dp #七寸平板以上 main.xml 1.根据需求提供多套需要的布局文件 布局文件的名称必须相同 文件的内容可以不同 2.当app发布到设备时 系统会检测设备的屏幕尺寸大小从而决定调用哪个layout下的布局文件 屏幕密度(分辨率) 1.为app提供多套不同分辨率的图片 MyProject/ res/ drawable-xhdpi/ awesomeimage.png drawable-hdpi/ awesomeimage.png drawable-mdpi/ awesomeimage.png drawable-ldpi/ awesomeimage.png xhdpi: 2.0 hdpi: 1.5 mdpi: 1.0 (baseline) ldpi: 0.75 例如:如果你生成一个200x200的图像xhdpi设备,就应生成设备相同的资源在150×150的hdpi, 100×100的MDPI和75x75 Ldpi 。 2.9patch图片的使用 9patch一般来说是以纯色图片作为背景使用 拉伸时边缘不会出现锯齿 9patch在app最终打包生成apk时比一般的图片占空间小 (下边是制作的位置,如果你使用的是studio的话,这样也是通用的,不过有更简单的方式,
打开studio的放置图片的资源文件,选择你需要制作成.9的图片,
右键选择Create 9-patch file,点击确定,你会发现你的图片资源文件中的某张图片,
多了一张.9格式的) sdk-tools-draw9patch.... 三、平台适配(版本适配) 1.指定最小和目标的API级别 (这里建议多使用一些v4,v7,v13..的包,这些都是带有向下兼容的包,但是不是兼容一些) 2.运行时检查系统版本 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { //在使用一些新sdk中出现的组件或者是控件时需要判断当前app所在的设备的sdk 版本是否已经能够使用该组件 } 3.使用的平台风格和主题