安卓类的设备屏幕通常用尺寸和密度来描述,你应该保证你的app 安装在合适的尺寸和密度范围内。因此你应该包含不同的可替代的资源文件,去优化你的APP在不同的屏幕尺寸和密度下的外形。
1.四种通用的尺寸:small,normal,large,xlarge.
2.四种常见的密度:low(ldpi),medium(mdpi),high(hdpi),extra high(xhdpi)
适配不同的屏幕就要申明不同bitmap和layouts,你必须将这些文件存放在单独的不同目录中,类似于不同语言文件的文件目录。
还有就是考虑不同屏幕方向横向,纵向(landscape, portrait),也要调整布局,从而获得更好的用户体验。
创建不同的布局文件layout
如果想要获得很好的用户体验,你必须为每一个屏幕创建唯一合适的资源文件。每个布局文件都要保存到相应的文件夹下,使用不同的后缀命名(-<screen_szie>)例如:大屏幕的资源文件保存在 res/layout-large下。
例如,项目下包含一个默认文件和一个大屏幕文件
布局文件的文件名必须完全相同。内容不同,适应不同的屏幕,使用时完全相同。
系统会根据不同的屏幕自动加载合适的布局文件。
不同方向的命名例子
综合的资源文件 大屏幕 纵向
注意:安卓2.3以后支持使用最小宽 高来定义适配不同的屏幕密度。参考多种屏幕设计
创建不同的bitmaps
为了达到高质量的图像和高性能的表现,在所有的屏幕密度。你需要提供常见的屏幕密度
low, medium, high and extra-high density.
你要用原图根据下面的尺寸比例生成不同的矢量图
xhdpi: 2.0
hdpi: 1.5
mdpi: 1.0 (baseline)
ldpi: 0.75
然后保存在合适的路径目录。
引用时你只需要使用默认的密度就可以。系统会根据设备选择不同密度的图片
提示:对于ldpi有时可以省略,系统可以根据已有的高密度的资源,缩小一半供低密度使用
参考谷歌官方 图像设计指南