前言:
最近回顾以前学习的知识,发现许多都忘了,刚好重新复习一遍andorid布局的内容。
界面效果:
布局容器、ViewGroup和View之间的关系
- View:单个视图 (TextView ImageView Button)
- ViewGroup:视图组=视图容器 可以容纳多个视图 继承于View
- 布局容器:继承于ViewGroup,实现特有的布局方式(线性布局、约束布局、相对布局)
ViewGroup
ViewGroup确定测量、布局⼦视图和事件分发
wrap_content:指示您的视图将其⼤⼩调整为内容所需的尺⼨。
match_parent:指示您的视图尽可能采⽤其⽗视图组所允许的最⼤尺⼨
margin:和父容器或其它控件的间距
padding:自己内部的间距
LinearLayout线性布局
⽤于使所有⼦视图在单个⽅向(垂直或⽔平)保持对⻬。您可使⽤android:orientation属性指定布局⽅向。
RelativeLayout线性布局
RelativeLayout是一个以相对位置显示子视图的试图组,每个视图的位置指定为相对于同级元素的位置(例如,在另⼀个视图的左侧或下⽅)或相对于⽗级RelativeLayout区域的位置(例如在底部、左侧或中⼼对⻬)。
ConstraintLayout约束布局
ConstraintLayout可让您使⽤扁平视图层次结构(⽆嵌套视图组)创建复的⼤型布局。它与RelativeLayout相似,其中所有的视图均根据同级视图与⽗布局之间的关系进⾏布局,但其灵活性要⾼于RelativeLayout,并且更易于与Android Studio的布局编辑器配合使⽤。
下面是上课做的笔记:
1.xml配置 layout下创建.xml文件 进行界面布局
2.code创建 手动使用代码来创建界面或者是添加控件
一个界面就是一个Activity
一个界面上显示什么内容 -->控件 视图
View:单个的 看得到的 可以和用户交互的 控件
ViewGroup:容器 可以存放多个View/ViewGroup 并且管理view的布局
根据每个容器具体功能划分:
FrameLayout 帧布局
LinearLayout 线性布局
RelativeLayout 相对布局 A和B之间有相对对齐关系 (左 右 上 下 中心)
ConstraintLayout 约束布局
FrameLayout
每个容器都有自己的LayoutParams类 管理子控件的布局参数
Xml中引用某个资源 使用@开头
layout_width/height 固定的尺寸200dp match_parent和父容器一样大 wrap_content自己内容多大控件就多大
当添加子控件时,最后添加的控件在最外层,如果控件足够大,会覆盖之前的控件
layout_margin 设置和父容器左右上下的外间距
layout_marginStart/Left 和父容器左边的外间距
padding 视图本身的内容和这个视图之间的间距
FrameLayout很少用,主要是布局不方便
LinearLayout
只有横向或者纵向布局的界面 -> 线性布局
1.必须确定摆放的方式 横向、纵向
orientation 默认横向摆放
layout_weight 权重
给宽度或者高度设置为0dp
设置对应的比例值
2.注意 容器的嵌套不要太多 效率低 计算容器的尺寸
小第 -> 组长 ->部门经理 ->主管 ->副总 ->总经理 ->董事长
RelativeLayout 相对布局 子控件和子控件之间 子控件和父控件之间可以添加对齐的关系
xml中使用 id来标识每一个控件
下面进入项目实战:
在布局界面添加对应控件
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.25" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.5" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.37" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.6" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.85" />
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/imageView"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="20dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="20dp"
android:scaleType="centerCrop"
android:src="@drawable/banner"
app:layout_constraintBottom_toTopOf="@+id/guideline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_goneMarginBottom="20dp"
app:riv_corner_radius="10dp" />
<LinearLayout
android:id="@+id/l1"
android:layout_width="wrap_content"
android:layout_height="88dp"
android:gravity="center_horizontal"
android:orientation="vertical"
app:layout_constraintBottom_toTopOf="@+id/guideline4"
app:layout_constraintEnd_toStartOf="@+id/l2"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintStart_toStartOf="@+id/imageView"
app:layout_constraintTop_toTopOf="@+id/guideline">
<ImageView
android:id="@+id/img1"
android:layout_width="45dp"
android:layout_height="45dp"
android:contentDescription="@string/desc"
app:srcCompat="@drawable/bjx"
tools:layout_editor_absoluteX="20dp"
tools:layout_editor_absoluteY="194dp" />
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/title1"
tools:layout_editor_absoluteX="20dp"
tools:layout_editor_absoluteY="249dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/l2"
android:layout_width="wrap_content"
android:layout_height="88dp"
android:gravity="center_horizontal"
android:orientation="vertical"
app:layout_constraintBottom_toTopOf="@+id/guideline4"
app:layout_constraintEnd_toStartOf="@+id/l3"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/l1"
app:layout_constraintTop_toTopOf="@+id/guideline">
<ImageView
android:id="@+id/img2"
android:layout_width="45dp"
android:layout_height="45dp"
android:contentDescription="@string/desc"
app:srcCompat="@drawable/bm"
tools:layout_editor_absoluteX="20dp"
tools:layout_editor_absoluteY="194dp" />
<TextView
android:id="@+id/tv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/title1"
tools:layout_editor_absoluteX="20dp"
tools:layout_editor_absoluteY="249dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/l3"
android:layout_width="wrap_content"
android:layout_height="88dp"
android:gravity="center_horizontal"
android:orientation="vertical"
app:layout_constraintBottom_toTopOf="@+id/guideline4"
app:layout_constraintEnd_toStartOf="@+id/l4"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/l2"
app:layout_constraintTop_toTopOf="@+id/guideline">
<ImageView
android:id="@+id/img3"
android:layout_width="45dp"
android:layout_height="45dp"
android:contentDescription="@string/desc"
app:srcCompat="@drawable/cs"
tools:layout_editor_absoluteX="20dp"
tools:layout_editor_absoluteY="194dp" />
<TextView
android:id="@+id/tv3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/title1"
tools:layout_editor_absoluteX="20dp"
tools:layout_editor_absoluteY="249dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/l4"
android:layout_width="wrap_content"
android:layout_height="88dp"
android:gravity="center_horizontal"
android:orientation="vertical"
app:layout_constraintBottom_toTopOf="@+id/guideline4"
app:layout_constraintEnd_toStartOf="@+id/l5"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/l3"
app:layout_constraintTop_toTopOf="@+id/guideline">
<ImageView
android:id="@+id/img4"
android:layout_width="45dp"
android:layout_height="45dp"
android:contentDescription="@string/desc"
app:srcCompat="@drawable/hm"
tools:layout_editor_absoluteX="20dp"
tools:layout_editor_absoluteY="194dp" />
<TextView
android:id="@+id/tv4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/title1"
tools:layout_editor_absoluteX="20dp"
tools:layout_editor_absoluteY="249dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/l5"
android:layout_width="wrap_content"
android:layout_height="88dp"
android:gravity="center_horizontal"
android:orientation="vertical"
app:layout_constraintBottom_toTopOf="@+id/guideline4"
app:layout_constraintEnd_toEndOf="@+id/imageView"
app:layout_constraintStart_toEndOf="@+id/l4"
app:layout_constraintTop_toTopOf="@+id/guideline">
<ImageView
android:id="@+id/img5"
android:layout_width="45dp"
android:layout_height="45dp"
android:contentDescription="@string/desc"
app:srcCompat="@drawable/jm"
tools:layout_editor_absoluteX="20dp"
tools:layout_editor_absoluteY="194dp" />
<TextView
android:id="@+id/tv5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/title1"
tools:layout_editor_absoluteX="20dp"
tools:layout_editor_absoluteY="249dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/l6"
android:layout_width="wrap_content"
android:layout_height="88dp"
android:gravity="center_horizontal"
android:orientation="vertical"
app:layout_constraintBottom_toTopOf="@+id/guideline2"
app:layout_constraintEnd_toStartOf="@+id/l7"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintStart_toStartOf="@+id/l1"
app:layout_constraintTop_toTopOf="@+id/guideline4">
<ImageView
android:id="@+id/img6"
android:layout_width="45dp"
android:layout_height="45dp"
android:contentDescription="@string/desc"
app:srcCompat="@drawable/m"
tools:layout_editor_absoluteX="20dp"
tools:layout_editor_absoluteY="194dp" />
<TextView
android:id="@+id/tv6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/title1"
tools:layout_editor_absoluteX="20dp"
tools:layout_editor_absoluteY="249dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/l7"
android:layout_width="wrap_content"
android:layout_height="88dp"
android:gravity="center_horizontal"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="@+id/l6"
app:layout_constraintEnd_toStartOf="@+id/l8"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/l6"
app:layout_constraintTop_toTopOf="@+id/l6">
<ImageView
android:id="@+id/img7"
android:layout_width="45dp"
android:layout_height="45dp"
android:contentDescription="@string/desc"
app:srcCompat="@drawable/q"
tools:layout_editor_absoluteX="20dp"
tools:layout_editor_absoluteY="194dp" />
<TextView
android:id="@+id/tv7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/title1"
tools:layout_editor_absoluteX="20dp"
tools:layout_editor_absoluteY="249dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/l8"
android:layout_width="wrap_content"
android:layout_height="88dp"
android:gravity="center_horizontal"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="@+id/l7"
app:layout_constraintEnd_toStartOf="@+id/l9"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/l7"
app:layout_constraintTop_toTopOf="@+id/l7">
<ImageView
android:id="@+id/img8"
android:layout_width="45dp"
android:layout_height="45dp"
android:contentDescription="@string/desc"
app:srcCompat="@drawable/sk"
tools:layout_editor_absoluteX="20dp"
tools:layout_editor_absoluteY="194dp" />
<TextView
android:id="@+id/tv8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/title1"
tools:layout_editor_absoluteX="20dp"
tools:layout_editor_absoluteY="249dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/l9"
android:layout_width="wrap_content"
android:layout_height="88dp"
android:gravity="center_horizontal"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="@+id/l8"
app:layout_constraintEnd_toStartOf="@+id/l10"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/l8"
app:layout_constraintTop_toTopOf="@+id/l8">
<ImageView
android:id="@+id/img9"
android:layout_width="45dp"
android:layout_height="45dp"
android:contentDescription="@string/desc"
app:srcCompat="@drawable/sl"
tools:layout_editor_absoluteX="20dp"
tools:layout_editor_absoluteY="194dp" />
<TextView
android:id="@+id/tv9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/title1"
tools:layout_editor_absoluteX="20dp"
tools:layout_editor_absoluteY="249dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/l10"
android:layout_width="wrap_content"
android:layout_height="88dp"
android:gravity="center_horizontal"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="@+id/l9"
app:layout_constraintEnd_toEndOf="@+id/l5"
app:layout_constraintStart_toEndOf="@+id/l9"
app:layout_constraintTop_toTopOf="@+id/l9">
<ImageView
android:id="@+id/img10"
android:layout_width="45dp"
android:layout_height="45dp"
android:contentDescription="@string/desc"
app:srcCompat="@drawable/hmao"
tools:layout_editor_absoluteX="20dp"
tools:layout_editor_absoluteY="194dp" />
<TextView
android:id="@+id/tv10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/title1"
tools:layout_editor_absoluteX="20dp"
tools:layout_editor_absoluteY="249dp" />
</LinearLayout>
<ImageView
android:id="@+id/imageView3"
android:layout_width="25dp"
android:layout_height="25dp"
app:layout_constraintBottom_toTopOf="@+id/guideline3"
app:layout_constraintStart_toStartOf="@+id/l6"
app:layout_constraintTop_toTopOf="@+id/guideline2"
app:srcCompat="@drawable/fire" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/guess"
android:textColor="#121111"
android:textSize="15dp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/imageView3"
app:layout_constraintStart_toEndOf="@+id/imageView3"
app:layout_constraintTop_toTopOf="@+id/imageView3" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/con1"
android:layout_width="166dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/guideline5"
app:layout_constraintEnd_toStartOf="@+id/con2"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintStart_toStartOf="@+id/imageView3"
app:layout_constraintTop_toTopOf="@+id/guideline3">
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/Limg1"
android:layout_width="166dp"
android:layout_height="89dp"
android:scaleType="centerCrop"
android:src="@drawable/pic1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:riv_corner_radius="10dp" />
<TextView
android:id="@+id/name1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginBottom="5dp"
android:text="荒野大爷"
android:textColor="#fff"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/Limg1"
app:layout_constraintStart_toStartOf="@+id/Limg1" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="5dp"
android:text="4.5万"
android:textColor="#fff"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/name1"
app:layout_constraintEnd_toEndOf="parent" />
<TextView
android:id="@+id/textView5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="你在教我玩游戏?"
android:textColor="#000"
app:layout_constraintBottom_toTopOf="@+id/imageView7"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/Limg1" />
<ImageView
android:id="@+id/imageView7"
android:layout_width="22dp"
android:layout_height="22dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:srcCompat="@drawable/v" />
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="绝活卡尔使用者"
android:textColor="#D74F25"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/imageView7"
app:layout_constraintStart_toEndOf="@+id/imageView7"
app:layout_constraintTop_toTopOf="@+id/imageView7" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/con2"
android:layout_width="166dp"
android:layout_height="0dp"
android:layout_marginStart="10dp"
app:layout_constraintBottom_toTopOf="@+id/guideline5"
app:layout_constraintEnd_toEndOf="@+id/l10"
app:layout_constraintStart_toEndOf="@+id/con1"
app:layout_constraintTop_toTopOf="@+id/guideline3"
app:layout_constraintVertical_bias="0.0">
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/Limg2"
android:layout_width="166dp"
android:layout_height="89dp"
android:scaleType="centerCrop"
android:src="@drawable/pic1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:riv_corner_radius="10dp" />
<TextView
android:id="@+id/name2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginBottom="5dp"
android:text="荒野大爷"
android:textColor="#fff"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/Limg2"
app:layout_constraintStart_toStartOf="@+id/Limg2" />
<TextView
android:id="@+id/rd2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="5dp"
android:text="4.5万"
android:textColor="#fff"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/name2"
app:layout_constraintEnd_toEndOf="parent" />
<TextView
android:id="@+id/title2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="你在教我玩游戏?"
android:textColor="#000"
app:layout_constraintBottom_toTopOf="@+id/jh2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/Limg2" />
<ImageView
android:id="@+id/jh2"
android:layout_width="22dp"
android:layout_height="22dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:srcCompat="@drawable/v" />
<TextView
android:id="@+id/des2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="绝活卡尔使用者"
android:textColor="#D74F25"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/jh2"
app:layout_constraintStart_toEndOf="@+id/jh2"
app:layout_constraintTop_toTopOf="@+id/jh2"
app:layout_constraintVertical_bias="0.0" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.97" />
</androidx.constraintlayout.widget.ConstraintLayout>