Android屏幕适配方法

请参考Android 系统版本、屏幕尺寸和OpenGL版本分布情况概述http://developer.android.com/about/dashboards/index.html。注意:此数据不包含中国大陆地区。

Android屏幕的碎片化是开发者比较头疼的问题之一,本文将简要说明几种适配不同尺寸屏幕的方法。


首先介绍Android的布局、像素和资源文件夹的一些概念。


Android中的布局方式分为FrameLayout(帧布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)。

各自特点如下:

RelativeLayout:可以指明子控件相对于父控件的位置,也可以指明两个子控件之间的相对位置,布局范围在屏幕大小之内。

LinearLayout:按垂直或水平方向依次放置子控件,布局范围可以超过屏幕,可以设置子空间之间的比重(如果LinearLayout在该方向上是wrap_content的,实际大小和比重成正比;如果是match_parent或fill_content的,实际大小和比重成反比)。

FrameLayout:所有子控件一次叠加在左上角,布局不能超过屏幕范围。

TableLayout:以行和列的形式组织其子控件,不常用。

AbsoluteLayout:使用像素值指定子控件显示的位置,不推荐。


Android设备分辨率不同,目前有LDPI(120dpi), MDPI(160dpi), HDPI(240dpi), XHDPI(320dpi), XXHDPI(480dpi) 和 XXXHDPI(640dpi), 这些种设备Android工程目录的res文件夹可以为不同分辨率的屏幕创建各自的资源文件夹。当app被安装到不同分辨率的设备上时,Android系统会根据设备的实际尺寸选择相应的资源文件加载。这种方式大家都不喜欢,但是作为最后的必杀技还是可以使用的。


下面就具体谈谈怎么为不同分辨的设备合理布局。

第一条:选择恰当的布局方式

我们首先会把AbsoluteLayout排除在外,因为它只能为特定尺寸布局恰当,换个尺寸就要多写个布局文件,显然大家都不愿意这么做。

多用RelativeLayout和LinearLayout,相对布局可以指定子控件之间的相对位置、间距,线性布局可以指定子空间的分配比例,这些可以在很大程度上摆脱对屏幕尺寸的依赖。这种方式需要多多运用。


第二条:为不同分辨率的屏幕提供相应的布局文件和资源文件,这个就不说了。


第三条:适当过滤支持的分辨率。工程的配置文件可以设定可以支持的分辨率设备,不在此列的设备将不能安装该app,这是对性能和体验的一种消极保护。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值