云服务器

商务合作:179001057@qq.com

Android 线性布局、帧布局

xiaoxiao2021-11-25  15


某平台价值19860元的编程课程资料免费领取【点我领取】


什么是布局 就是把界面中的控件按照某种规律摆放到指定的位置

布局的二种实现 代码 xml配置文件:res/layout目录下 注:也可以同时使用xml和代码

布局的基本属性 取值范围 { //效果是一样的 fill_parent//过时 match_parent//不过时 }

固定值 { dp 控件大小 sp 文字大小 }

padding 内补丁 margin 外补丁

android:gravity和android:layout_gravity 用一个TextView、文字、背景查看效果最方便 android:gravity:控件内部的元素 android:layout_gravity:控件所在父元素的位置 但父元素的水平和垂直设置的优先度更高

案例2:线性布局(重点) orientation=“vertical|horizontal”//垂直/水平 android:gravity:控件内部的元素(对内有效)

<?xml version="1.0" encoding="UTF-8"?>

代码展示

<?xml version="1.0"?> <LinearLayout android:layout_height="match_parent" android:layout_width="match_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <LinearLayout android:layout_height="match_parent" android:layout_width="wrap_content" android:orientation="vertical" android:gravity="left"> <Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="左上按钮"/> <Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="左下按钮" android:layout_marginTop="400dp"/> -<LinearLayout android:layout_height="match_parent" android:layout_width="wrap_content" android:orientation="vertical" android:gravity="center" android:layout_weight="2.5"> <Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="中间按钮"/> -<LinearLayout android:layout_height="match_parent" android:layout_width="wrap_content" android:orientation="vertical" android:gravity="right"> <Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="右上按钮"/> <Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="右下按钮" android:layout_marginTop="400dp"/>

案例3:android:gravity和android:layout_gravity的区别 7.1 android:gravity:控件内部的元素(对内有效) android:layout_gravity:控件所在父元素的位置(对外生效) 7.2 特殊情况 父元素的android:orientation=“vertical”,layout_gravity 水平设置的相关属性有效 父元素的android:orientation=“horizontal”,layout_gravity 垂直设置的相关属性有效

案例4:LinearLayout布局中Layout_weight属性的作用 8.1 首先声明只有在Linearlayout中,layout_weight属性才有效。 8.2 它是用来指定(剩余空闲空间)的分割比例,而非按比例分配整个空间。 8.3 另外android:layout_weight会引起争议,是因为在设置该属性的同时, 设置android:layout_width为wrap_content和match_parent会造成两种截然相反的效果。 8.4 如果想用layout_weight平均分配空间,正确方式是将layout_width(或layout_height)设置为0dp, 再通过layout_weight按比例分配空间 注:关键点在于搞清楚什么是剩余空闲空间

案例5:帧布局(就好象一张张卡片堆叠上去,后面会盖出前面的) FrameLayout 注:帧布局有点类似于awt的CardLayout都是把组件一个一个叠加到一起, 但CardLayout能将下面的组件移上来,但FrameLayout没有提供此功能

<?xml version="1.0" encoding="UTF-8"?>

代码展示

<FrameLayout android:layout_height="match_parent" android:layout_width="match_parent" tools:context="com.example.myapplication3.MainActivity" xmlns:tools="http://schemas.android.com/tools"> <TextView android:layout_height="400dp" android:layout_width="400dp" android:textSize="30dp" android:layout_gravity="center" android:background="@color/red" android:id="@+id/tv_bottom1"/> <TextView android:layout_height="350dp" android:layout_width="350dp" android:textSize="30dp" android:layout_gravity="center" android:background="@color/orange" android:id="@+id/tv_bottom2"/> <TextView android:layout_height="300dp" android:layout_width="300dp" android:textSize="30dp" android:layout_gravity="center" android:background="@color/yellow" android:id="@+id/tv_bottom3"/> <TextView android:layout_height="250dp" android:layout_width="250dp" android:textSize="30dp" android:layout_gravity="center" android:background="@color/green" android:id="@+id/tv_bottom4"/> <TextView android:layout_height="200dp" android:layout_width="200dp" android:textSize="30dp" android:layout_gravity="center" android:background="@color/teal" android:id="@+id/tv_bottom5"/> <TextView android:layout_height="150dp" android:layout_width="150dp" android:textSize="30dp" android:layout_gravity="center" android:background="@color/blue" android:id="@+id/tv_bottom6"/> <TextView android:layout_height="100dp" android:layout_width="100dp" android:textSize="30dp" android:layout_gravity="center" android:background="@color/purple" android:id="@+id/tv_bottom7"/> ![线性布局+帧布局同时使用](https://img-blog.csdn.net/20181020235344983?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0tpZFNobWlseQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) ImageView src scaleType="fitXY" XY方向拉伸 android:scaleType="fitXY" android:src="@drawable/img18"