代码干货|Android 设备如何做到支持不同的屏幕尺寸

本文介绍了如何使Android应用支持不同屏幕尺寸,包括使用ConstraintLayout创建灵活布局,避免硬编码尺寸,创建备用布局如根据最小宽度限定符调整界面,使用Fragment模块化界面,以及针对屏幕方向和可用宽度的布局优化。通过这些技巧,应用能够适应各种屏幕尺寸,提供更好的用户体验。
摘要由CSDN通过智能技术生成

Android 设备的形状和尺寸多种多样,因此应用的布局需要十分灵活。也就是说,布局应该从容应对不同的屏幕尺寸和方向,而不是为布局定义刚性尺寸,假定屏幕尺寸和宽高比是一定的。

如果能够支持尽可能多的屏幕,您的应用就可以在各种不同设备上运行,这样您就可以使用单个 APK 将其提供给最多的用户。此外,如果能够使您的应用灵活适应不同的屏幕尺寸,可确保您的应用可以处理设备上的窗口配置更改,例如,当用户启用多窗口模式时发生的窗口配置更改。

本页将向您介绍如何采用以下技巧来支持不同的屏幕尺寸:

  • 使用允许布局调整大小的视图尺寸
  • 根据屏幕配置创建备用界面布局
  • 提供可以随视图一起拉伸的位图

但请注意,适应不同的屏幕尺寸并不一定会使您的应用与所有 Android 设备类型兼容。您应该采取其他措施来支持 Android Wear、Android TV、Android Auto 和 Chrome 操作系统设备。 有关针对不同屏幕构建界面的设计指南,请参阅自适应界面的 Material 指南。

 

创建灵活的布局

无论您首先要支持什么硬件配置文件,都需要创建一个能够灵活应对屏幕尺寸变化(即便是微小变化)的布局。

 

使用 ConstraintLayout

要创建适用于不同屏幕尺寸的自适应布局,最佳做法就是将 ConstraintLayout 用作界面中的基本布局。使用 ConstraintLayout,您可以根据布局中视图之间的空间关系来指定每个视图的位置和大小。通过这种方式,当屏幕尺寸改变时,所有视图都可以一起移动和拉伸。 要使用 ConstraintLayout 构建布局,最简单的方法就是使用 Android Studio 中的布局编辑器。借助该工具,您可以将新视图拖动到布局中、将其约束附加到父视图和其他同级视图,以及修改视图的属性,完全不必手动修改任何 XML(请参见图 1)。 有关详情,请参阅使用 ConstraintLayout 构建自适应界面。

 图 1. Android Studio 中的布局编辑器,显示了一个 ConstraintLayout 文件

 

但是,ConstraintLayout 并不能解决所有布局场景(特别是动态加载的列表,对于此类布局,您应使用 RecyclerView),但无论您使用何种布局,都应该避免对布局尺寸进行硬编码(请参见下一节)。

避免使用硬编码的布局尺寸

为了确保布局能够灵活地适应不同的屏幕尺寸,您应该对大多数视图组件的宽度和高度使用 "wrap_content" 和 "match_parent",而不是硬编码的尺寸。

"wrap_content" 告知视图将尺寸设为让其能够容纳下相应内容所需的尺寸。

"match_parent" 使视图在父视图中尽可能地展开。

例如:

<TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/lorem_ipsum" />
    

 

虽然此视图的实际布局取决于其父视图和任何同级视图中的其他属性,但是此 Te

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值