美文网首页
Android 基础学习 day03

Android 基础学习 day03

作者: Y__W | 来源:发表于2021-02-24 15:44 被阅读0次

目录

  • 一、相对布局
    • (一)概述
    • (二)注意事项
    • (三)常用属性
    • (四)测试
  • 二、练习任务四
    • (一)准备
    • (二)具体实施
    • (三)效果展示
  • 三、补充内容

写在前面的话

1、内容参考自B站安卓相关学习视频以及网络。
2、内容如果有不对的,希望可以指出或补充。
3、巩固内容。

一、相对布局

(一)概述

相对布局(RelativeLayout):也是常用布局之一,最为灵活,可以设置某一个控件相对于包裹它的(父容器)或者是和它一起被包裹的另一个控件(兄弟控件)的位置。

适用于较复杂的布局,主要针对的是线性布局嵌入多层的问题。一般采用 RelativeLayout + LinearLayout的layout_weight属性 来搭配使用。

(二)注意事项

1、相对于兄弟控件的位置,必须通过ID来进行指定。

2、指定位置关系时,引用的ID必须在引用之前被定义好(先定义,后引用)。就是引用了一个id,那这个id一定是要存在的。

3、相对于父容器的定位,xx居中对齐方式取false时,就相当于是恢复成默认位置(左上)。

4、再次强调,默认位置是左上。

(三)常用属性

相对布局(RelativeLayout)的部分属性,整理如下。
| 相对于 | 属性 | 作用 | 值 |
| 父容器 |
<center>android:layout_alignParentBottom</center>
<center>靠下</center>
<center>true或false</center>
<center>android:layout_centerInParent</center>
<center>垂直又水平居中</center>
<center>android:layout_centerHorizontal</center>
<center>水平居中</center>
| 兄弟控件 |
<center>android:layout_toLeftOf</center>
<center>在控件左边</center>
<center>兄弟控件的id</center>
<center>android:layout_above</center>
<center>在控件上边</center>
<center>android:layout_alignBottom</center>
<center>底边对齐</center>
注:
1.属性名称带有parent的表示是父容器(可以以此来判断)。
2.相对于父容器的值为flase时表示作用相反(不包括居中方式),如android:layout_alignParentBottom="false"就是靠上的效果。

(四)测试

1、相对于父容器

① android:layout_alignParentBottom=“true”,效果如下。


在这里插入图片描述

② android:layout_centerInParent=“true”,效果如下。


在这里插入图片描述

③ android:layout_centerHorizontal=“true”,效果如下。


在这里插入图片描述

④ 组合测试

这里我试的是 android:layout_centerHorizontal=“true” + android:layout_alignParentBottom=“true”,效果如下。


在这里插入图片描述

2、相对于兄弟控件

为了方便看出效果,将控件1(Test1)设置到界面居中位置。

① android:layout_toLeftOf ="@+id/引用的已有id名称",效果如下。


在这里插入图片描述

② android:layout_above="@+id/引用的已有id名称",效果如下。


在这里插入图片描述

③ android:layout_alignBottom="@+id/引用的已有id名称",效果如下。


在这里插入图片描述

二、练习任务四

这里是安卓基础学习Day05的部分。
因为是练习的相对布局,所以放到这里来。

(一)准备

1、文件准备

需要新建(准备)的文件,如下。


在这里插入图片描述

2、界面划分

一共九行,前面八行里面总体包含有两个控件(一、三、八行是标签+下拉列表,二行是标签+编辑框,剩下的是标签+单选按钮组),最后一行是用的一个线性布局里面包含有单选按钮。


在这里插入图片描述

(二)具体实施

1、背景边框

① 总体的一个背景框


在这里插入图片描述

② 确定按钮的背景框


在这里插入图片描述

2、布局文件(relative_test.xml)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    android:background="@mipmap/bg"
    android:paddingLeft="5dp"
    tools:context=".MainActivity">

    <RelativeLayout
        android:id="@+id/row1"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/white"
        android:padding="5dp"
        >
        <TextView
            android:id="@+id/t1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/title_row1"
            android:textSize="20sp"

            android:layout_centerVertical="true"
            />
        <!--下拉 entries-->
        <Spinner
            android:id="@+id/spinner_row1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:entries="@array/date"

            android:layout_marginLeft="128dp"
            android:layout_alignBottom="@+id/t1"
            android:background="@drawable/bg_shape"
            />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/row2"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/white"
        android:padding="5dp"

        android:layout_marginTop="5dp"
        android:layout_below="@+id/row1"
        >
        <TextView
            android:id="@+id/t2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="数量:"
            android:textSize="20sp"

            android:layout_centerVertical="true"
            />
        <EditText
            android:id="@+id/text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/bg_shape"

            android:layout_marginLeft="128dp"
            android:layout_alignBottom="@+id/t2"
            />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/row3"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/white"
        android:padding="5dp"

        android:layout_marginTop="5dp"
        android:layout_below="@+id/row2"
        >
        <TextView
            android:id="@+id/t3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/title_row3"
            android:textSize="20sp"

            android:layout_centerVertical="true"
            />
        <!--下拉 entries-->
        <Spinner
            android:id="@+id/spinner_row2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/bg_shape"
            android:entries="@array/number"

            android:layout_marginLeft="128dp"
            android:layout_alignBottom="@+id/t3"
            />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/row4"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/white"
        android:padding="5dp"

        android:layout_marginTop="5dp"
        android:layout_below="@+id/row3"
        >
        <TextView
            android:id="@+id/t4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="变速箱:"
            android:textSize="20sp"

            android:layout_centerVertical="true"
            />
        <!--单选按钮部分-->
        <RadioGroup
            android:id="@+id/row4_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"

            android:weightSum="2"
            android:layout_marginLeft="128dp"
            >
            <RadioButton
                android:id="@+id/radioBtn1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="自动"
                android:layout_weight="1"
                />
            <RadioButton
                android:id="@+id/radioBtn2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="手动"
                android:layout_weight="1"
                />
        </RadioGroup>
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/row5"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/white"
        android:padding="5dp"

        android:layout_marginTop="5dp"
        android:layout_below="@+id/row4"
        >
        <TextView
            android:id="@+id/t5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="轮骰:"
            android:textSize="20sp"

            android:layout_centerVertical="true"
            />
        <!--单选按钮部分-->
        <RadioGroup
            android:id="@+id/row5_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"

            android:weightSum="2"
            android:layout_marginLeft="128dp"
            >
            <RadioButton
                android:id="@+id/radioBtn3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="烤漆"
                android:layout_weight="1"
                />
            <RadioButton
                android:id="@+id/radioBtn4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="电镀"
                android:layout_weight="1"
                />
        </RadioGroup>
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/row6"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/white"
        android:padding="5dp"

        android:layout_marginTop="5dp"
        android:layout_below="@+id/row5"
        >
        <TextView
            android:id="@+id/t6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="中控:"
            android:textSize="20sp"

            android:layout_centerVertical="true"
            />
        <!--单选按钮部分-->
        <RadioGroup
            android:id="@+id/row6_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"

            android:weightSum="2"
            android:layout_marginLeft="128dp"
            >
            <RadioButton
                android:id="@+id/radioBtn5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="低配"
                android:layout_weight="1"
                />
            <RadioButton
                android:id="@+id/radioBtn6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="高配"
                android:layout_weight="1"
                />
        </RadioGroup>
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/row7"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/white"
        android:padding="5dp"

        android:layout_marginTop="5dp"
        android:layout_below="@+id/row6"
        >
        <TextView
            android:id="@+id/t7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="刹车:"
            android:textSize="20sp"

            android:layout_centerVertical="true"
            />
        <!--单选按钮部分-->
        <RadioGroup
            android:id="@+id/row7_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="128dp"
            android:orientation="horizontal"

            android:weightSum="2"
            >
            <RadioButton
                android:id="@+id/radioBtn7"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="鼓式制动器"
                android:layout_weight="1"
                />
            <RadioButton
                android:id="@+id/radioBtn8"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="盘式制动器"
                android:layout_weight="1"
                />
        </RadioGroup>
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/row8"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/white"
        android:padding="5dp"

        android:layout_marginTop="5dp"
        android:layout_below="@+id/row7"
        >
        <TextView
            android:id="@+id/t8"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/title_row8"
            android:textSize="20sp"

            android:layout_centerVertical="true"
            />
        <!--下拉 entries-->
        <Spinner
            android:id="@+id/spinner_row3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:entries="@array/type"
            android:background="@drawable/bg_shape"
            android:layout_marginLeft="128dp"
            android:layout_alignBottom="@+id/t8"
            />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/row9"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/white"
        android:padding="5dp"

        android:layout_marginTop="5dp"
        android:layout_below="@+id/row8"
        >
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/btn_bg"
            android:layout_centerInParent="true"
            >
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="确定"
                android:backgroundTint="@color/white"
                android:textColor="@color/black"
                android:textSize="20sp"
                />
        </LinearLayout>
    </RelativeLayout>
</RelativeLayout>

3、下拉列表

values文件夹下的strings.xml。

<!--设置下拉菜单-->
<resources>
    <!--项目的名称(显示在活动窗口上)-->
    <string name="app_name">练习任务4</string>

    <string name="title_row1">交付时间:</string>
    <!--定义一个名为date的数组-->
    <string-array name = "date">
        <!--默认是显示第一个item-->
        <item> 2019/09/06 ▼</item>
        <item> 2019/10/06</item>
        <item> 2020/09/06</item>
        <item> 2020/10/06</item>
        <item> 2020/11/06</item>
        <item> 2020/12/06</item>
        <item> 2021/01/11</item>
    </string-array>

    <string name="title_row3">发动机排量:</string>
    <!--定义一个名为number的数组-->
    <string-array name = "number">
        <item> 1.0              ▼</item>
        <item> 2.0</item>
        <item> 3.0</item>
        <item> 4.0</item>
        <item> 5.0</item>
        <item> 6.0</item>
        <item> 7.0</item>
    </string-array>

    <string name="title_row8">悬挂:</string>
    <!--定义一个名为type的数组-->
    <string-array name = "type">
        <item> 独立悬挂系统 ▼</item>
        <item> 主动悬挂系统</item>
        <item> 横臂式悬挂系统</item>
        <item> 纵臂式悬挂系统</item>
        <item> 独式悬挂系统</item>
        <item> 多连杆式悬挂系统</item>
        <item> 麦佛逊式悬挂系统</item>
    </string-array>
</resources>

(三)效果展示

运行效果,如下。


在这里插入图片描述

三、补充内容

1、layout_weight属性是线性布局(LinearLayout)特有的属性。

2、关于Android的单位:

sp(scaled pixels,可缩放像素)一般是作为文字大小的单位,dp(density-independent pixels,密度无关像素)则是作为其它元素的单位 。
dp与sp

3、关于控件的id名称

一般都是用的 @+id/xx来定义id和引用已有id

  • @+id/自定义id名称:创建新的id
  • @id/已有的id名称 或者 @+id/已有的id名称:引用id

相关文章

网友评论

      本文标题:Android 基础学习 day03

      本文链接:https://www.haomeiwen.com/subject/cucrfltx.html