当前位置:   article > 正文

Android Studio开发(二) 常用布局

Android Studio开发(二) 常用布局

1、概述

在Android Studio中,布局方式指的是用于定义和排列界面元素(如按钮、文本框、图片等)的方式。Android应用的界面通常由多个视图组件组成,而布局方式则确定了这些视图组件在屏幕上的位置、大小和相互关系。

  • 适应不同屏幕尺寸和方向:Android设备有各种不同尺寸和分辨率的屏幕,使用布局可以确保应用在不同设备上都能正确显示,并且能够适应横向和纵向屏幕方向的切换。

  • 提高用户体验:通过合理的布局设计,可以使界面元素之间的关系清晰,用户可以更轻松地理解和操作应用,提升用户体验。

  • 实现复杂界面:布局方式可以帮助开发者实现复杂的界面设计,如网格布局、嵌套布局、滚动布局等,从而满足不同的设计需求。

  • 支持多语言和主题:布局可以灵活适配不同语言的文本和不同主题的样式,使应用更具可定制性。

  • 提高开发效率:使用布局可以更快速地构建界面,减少重复工作,提高开发效率。

2、线性布局(LinearLayout)

线性布局是最简单的布局方式之一,它按照水平或垂直方向依次排列子视图。可以通过设置子视图的权重来控制它们在布局中所占的比例。线性布局内部视图有两种排列方式:

  • orientation值为horizontal时,内部视图在水平方向上从左往右排列
  • orientation值为vertical时,内部视图在垂直方向从上往下排列

不指定orientation,默认为horizontal。

编写测试代码测试水平和垂直方向布局:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout
  3. xmlns:android="http://schemas.android.com/apk/res/android"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent"
  6. android:orientation="horizontal">
  7. <TextView
  8. android:layout_width="wrap_content"
  9. android:layout_height="wrap_content"
  10. android:textSize="22sp"
  11. android:text="Hello, World!" />
  12. <Button
  13. android:layout_width="wrap_content"
  14. android:layout_height="wrap_content"
  15. android:text="Click Me" />
  16. <Button
  17. android:layout_width="wrap_content"
  18. android:layout_height="wrap_content"
  19. android:text="Click Me" />
  20. </LinearLayout>

水平方向测试效果:

修改orientation属性值为vertical进行垂直方向测试:

3、相对布局(RelativeLayout)

相对布局允许您根据其他视图的位置来定位子视图。可以使用各种属性来指定子视图相对于父视图或其他子视图的位置。如果不设定下级视图的参照物,那么下级视图默认显示在RelativeLayout内部的左上角。相对位置的属性取值及其说明如下表所示:

属性取值说明
layout_above当前视图在指定视图的上方
layout_below当前视图在指定视图的下方
layout_toLeftOf当前视图在指定视图的左边
layout_toRightOf当前视图在指定视图的右边
layout_alignTop当前视图的顶部与指定视图的顶部对齐
layout_alignBottom当前视图的底部与指定视图的底部对齐
layout_alignLeft当前视图的左边与指定视图的左边对齐
layout_alignRight当前视图的右边与指定视图的右边对齐
layout_alignParentTop当前视图的顶部与父布局的顶部对齐
layout_alignParentBottom当前视图的底部与父布局的底部对齐
layout_alignParentLeft当前视图的左边与父布局的左边对齐
layout_alignParentRight当前视图的右边与父布局的右边对齐
layout_centerHorizontal当前视图水平居中于指定视图或父布局
layout_centerVertical当前视图垂直居中于指定视图或父布局
layout_centerInParent当前视图水平和垂直居中于父布局

编写测试代码:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout
  3. xmlns:android="http://schemas.android.com/apk/res/android"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent">
  6. <TextView
  7. android:id="@+id/textView"
  8. android:layout_width="wrap_content"
  9. android:layout_height="wrap_content"
  10. android:text="Hello, World!" />
  11. <Button
  12. android:id="@+id/btn1"
  13. android:layout_width="wrap_content"
  14. android:layout_height="wrap_content"
  15. android:layout_below="@id/textView"
  16. android:text="Click Me" />
  17. <Button
  18. android:id="@+id/btn2"
  19. android:layout_width="wrap_content"
  20. android:layout_height="wrap_content"
  21. android:layout_below="@id/btn1"
  22. android:layout_toRightOf="@id/btn1"
  23. android:text="Click2" />
  24. <Button
  25. android:layout_width="wrap_content"
  26. android:layout_height="wrap_content"
  27. android:layout_centerHorizontal="true"
  28. android:text="Click3" />
  29. </RelativeLayout>

测试结果如下:

在线性布局中,可以使用权重(weight)属性来控制子视图在父布局中所占的比例。权重属性允许我们根据比例分配剩余空间,从而实现灵活的布局设计。

在线性布局中,可以使用layout_weight属性来设置子视图的权重。具体来说,layout_weight属性是一个浮点数,表示子视图在父布局中所占的相对权重。当线性布局的方向为水平时,权重决定子视图在水平方向上的分配比例;当方向为垂直时,权重决定子视图在垂直方向上的分配比例。在上述测试代码中添加以下代码:

  1. <LinearLayout
  2. android:layout_width="match_parent"
  3. android:layout_height="wrap_content"
  4. android:layout_alignParentBottom="true"
  5. android:orientation="horizontal">
  6. <Button
  7. android:layout_width="0dp"
  8. android:layout_weight="1"
  9. android:layout_height="wrap_content"
  10. android:text="Button 1" />
  11. <Button
  12. android:layout_width="0dp"
  13. android:layout_weight="2"
  14. android:layout_height="wrap_content"
  15. android:text="Button 2" />
  16. </LinearLayout>

测试结果:

4、网格布局(GridLayout)

网格布局允许您将子视图放置在网格中的不同单元格中。可以指定子视图所占的行数和列数,以及它们的位置。

编写测试代码:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <GridLayout
  3. xmlns:android="http://schemas.android.com/apk/res/android"
  4. android:layout_width="match_parent"
  5. android:layout_height="wrap_content"
  6. android:rowCount="2"
  7. android:columnCount="2">
  8. <Button
  9. android:layout_width="0dp"
  10. android:layout_height="wrap_content"
  11. android:layout_row="0"
  12. android:layout_column="0"
  13. android:layout_columnWeight="1"
  14. android:text="Button 1" />
  15. <Button
  16. android:layout_width="0dp"
  17. android:layout_height="wrap_content"
  18. android:layout_row="1"
  19. android:layout_column="1"
  20. android:layout_columnWeight="1"
  21. android:text="Button 2" />
  22. </GridLayout>

测试结果如下:

5、滚动布局(ScrollView和HorizontalScrollView)

ScrollView是垂直方向的滚动视图,HorizontalScrollView是水平方向的滚动视图。滚动布局用于在屏幕空间有限的情况下支持滚动查看内容。当布局中的内容超出屏幕范围时,用户可以通过滑动屏幕来查看未显示的内容。

测试代码:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout
  3. xmlns:android="http://schemas.android.com/apk/res/android"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent">
  6. <HorizontalScrollView
  7. android:layout_width="wrap_content"
  8. android:layout_height="wrap_content">
  9. <TextView
  10. android:layout_width="wrap_content"
  11. android:layout_height="wrap_content"
  12. android:text="Hiding from the rain and snow
  13. Trying to forget but I won't let go
  14. Looking at a crowded street
  15. Listening to my own heart beat" />
  16. </HorizontalScrollView>
  17. </LinearLayout>

测试结果:

6、总结

本文讲述了Android Studio常用的简单布局,编写代码进行测试。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/227404
推荐阅读
相关标签
  

闽ICP备14008679号