当前位置: 萬仟网 > 移动技术>移动开发>Android > Android基础知识及线性布局介绍

Android基础知识及线性布局介绍

2022年01月14日 Android 我要评论
目录1.常见控件的基本属性1.1控件的可见性1.2控件的外边距1.3控件的内边距2.线性布局(linear layout)2.1示例:2.2微信界面实战3.总结1.常见控件的基本属性android:i

1.常见控件的基本属性

android:id="@+id/button1":【设置控件id】

android:layout_width【设置控件宽度】/android:layout_height【设置控件高度】

wrap_content【控件的大小由内部决定】

match_parent【控件的大小与父控件保持一致】

android:text=" ":【设置组件文本】

android:textcolor=" ":【设置字体颜色】

android:layout_marginleft:【当前布局与父布局左边缘的距离】

android:layout_marginright:【当前布局与父布局右边缘的距离】

android:layout_margintop:【当前布局与父布局顶部边缘的距离】

android:layout_marginbottom:【当前布局与父布局底部边缘的距离】

android:gravity :【view里面的内容在这个view中的位置】

android:layout_gravity :【这个view相对于它父view的位置】

1、gravity在线性布局中不起任何作用,layout_gravity在线性布局中起作用;
2、 当我们使用 android:orientation=“vertical” 时, android:layout_gravity只有水平方向的设置才起作用,
垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的;
3、当 我们使用android:orientation=“horizontal” 时, android:layout_gravity只有垂直方向的设置才起作用,
水平方向的设置不起作用。即:top,bottom,center_vertical 是生效的。

1.1控件的可见性

该属性有三种状态值:gone、visible、invisible。

gone 与invisible的区别是:
gone 表示控件不可见,也不会占任何的位置,也不会有任何响应。
而invisible表示控件虽然不可见,但是会占据它的宽高位置。

例子:

<linearlayout
      android:id="@+id/linearlayout"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:orientation="horizontal"
      app:layout_constraintend_toendof="parent"
      app:layout_constraintstart_tostartof="parent"
      app:layout_constrainttop_totopof="parent">

      <button
          android:id="@+id/button1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_weight="1"
          android:text="button1">

      </button>

      <button
          android:id="@+id/button2"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_weight="1"
          android:visibility="invisible"      //invisible表示控件虽然不可见,但是会占据它的宽高位置。
          android:text="button2">
      </button>

      <button
          android:id="@+id/button3"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_weight="1"

          android:text="button3"></button>

  </linearlayout>

效果如图:

在这里插入图片描述

例子:

<linearlayout
      android:id="@+id/linearlayout"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:orientation="horizontal"
      app:layout_constraintend_toendof="parent"
      app:layout_constraintstart_tostartof="parent"
      app:layout_constrainttop_totopof="parent">

      <button
          android:id="@+id/button1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_weight="1"
          android:text="button1">

      </button>

      <button
          android:id="@+id/button2"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_weight="1"
          android:visibility="gone"     //gone 表示控件不可见,也不会占任何的位置,也不会有任何响应。
          android:text="button2">
      </button>

      <button
          android:id="@+id/button3"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_weight="1"
          android:text="button3">

      </button>

  </linearlayout>

效果如图:

在这里插入图片描述

1.2控件的外边距

学习过html的都会知道css里的盒模式有个外边距和内边距。
外边距可以设置视图距离父视图上下左右的距离。
内边距可以设置视图内部内容距离自己边框上下左右的距离。
android 的控件布局其实也用的是这个盒模式。

如果距离父视图上下左右的外边距相同,可以这么设置:

android:layout_margin="10dp"

我们也可以单独的设置某个外边距:

android:layout_margintop="10dp"
android:layout_marginbottom="10dp"
android:layout_marginleft="10dp"
android:layout_marginright="10dp"

1.3控件的内边距

统一设置上下左右内边距:

android:padding="5dp"

各自设置内边距:

android:paddingtop="5dp"
android:paddingbottom="5dp"
android:paddingleft="5dp"
android:paddingright="5dp"

2.线性布局(linear layout)

linearlayout 核心属性:
​ (1) android:orientation:两个属性值:“vertical” 垂直 “horizontal”水平
​ (2) android:layout_weight 将父控件的剩余空间按照设置的权重比例再分配

2.1示例:

在这里插入图片描述

<linearlayout
        android:id="@+id/linearlayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintend_toendof="parent"
        app:layout_constraintstart_tostartof="parent"
        app:layout_constrainttop_totopof="parent">

        <button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:text="button1">

        </button>

        <button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"


            android:text="button2">
        </button>

        <button
            android:id="@+id/button3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:text="button3">

        </button>

    </linearlayout>

2.2微信界面实战

在这里插入图片描述

<?xml version="1.0" encoding="utf-8"?>
<linearlayout 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:orientation="vertical"
    android:layout_height="match_parent"
    tools:context=".mainactivity">

    <textview
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="×"
        android:textsize="50dp"
        android:layout_marginleft="5dp"/>

    <textview
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginleft="20dp"
        android:layout_margintop="5dp"
        android:text="微信号/qq/邮箱登录"
        android:textcolor="@color/black"
        android:textsize="30dp"/>


<!--第一个框架-->


    <linearlayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margintop="30dp">

        <linearlayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:layout_margintop="6dp"
            android:orientation="horizontal">

            <textview
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginleft="25dp"
                android:text="账号"
                android:textcolor="@color/black"
                android:textsize="25dp" />
        </linearlayout>

        <linearlayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0">
            <edittext
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:text="请填写微信号/qq号/邮箱                  "/>
        </linearlayout>

    </linearlayout>

<!--第二个框架-->
    <linearlayout
        android:layout_width="match_parent"
        android:layout_height="45dp"
        android:layout_margintop="10dp"
        android:orientation="horizontal">
        <linearlayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1">

            <textview
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginleft="25dp"
                android:text="密码"
                android:textcolor="@color/black"
                android:textsize="25dp" />
        </linearlayout>

        <linearlayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0">
        <edittext
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="请填写密码                                          "/>

        </linearlayout>

    </linearlayout>
        <textview
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="用手机号登录"
            android:layout_margintop="20dp"
            android:layout_marginleft="25dp"
            android:textsize="20dp"
            android:textcolor="@color/purple_500"/>

    <button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="登录"
        android:textsize="30dp"
        android:layout_margintop="30dp"
        />
<!--    第三个框架-->
    <linearlayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margintop="150dp"
        android:orientation="horizontal">

        <linearlayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="2">

            <textview
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="找回密码"
                android:layout_marginleft="80dp"
                android:textcolor="@color/purple_500"
                android:textsize="15dp" />
        </linearlayout>

        <linearlayout
            android:layout_width="122dp"
            android:layout_height="wrap_content"
            android:layout_weight="7">

            <textview
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="紧急冻结"
                android:layout_marginleft="40dp"
                android:textcolor="@color/purple_500"
                android:textsize="15dp" />
        </linearlayout>
        <linearlayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="70">
            <textview
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="微信安全中心"
                android:textcolor="@color/purple_500"/>
        </linearlayout>

    </linearlayout>

</linearlayout>

3.总结

到此这篇关于android基础知识及线性布局介绍的文章就介绍到这了,更多相关android线性布局内容请搜索萬仟网以前的文章或继续浏览下面的相关文章希望大家以后多多支持萬仟网!

(0)
打赏 微信扫一扫 微信扫一扫

相关文章:

  • Python PCA降维的两种实现方法

    目录前言pca降维的一般步骤为:实现pca降维,一般有两种方法:总结前言pca降维,一般是用于数据分析和机器学习。它的作用是把一个高维的数据在保留最大信息量的前提下降低到一个低维的…

    2022年01月14日 脚本编程
  • C#算法之无重复字符的最长子串

    C#算法之无重复字符的最长子串

    题目给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例 1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长... [阅读全文]
  • 关于Android冷启动耗时优化详解

    关于Android冷启动耗时优化详解

    目录1,背景2,调研2.1,android中启动的方式2.2,冷启动流程2.3,启动时间3,方案1,冷启动白屏现象2,启动时间优化总结1,背景最近开发了一个新的... [阅读全文]
  • Python中unittest的断言方法详解

    Python中unittest的断言方法详解

    目录断言方法:方法有:下面是做的例子,后边是运行结果:总结断言方法: 是unittest提供的一组方法,可以通过这些方法完成期望结果和实际结果的对比方法有:as... [阅读全文]
  • springboot mybatis调用多个数据源引发的错误问题

    目录springboot mybatis调用多个数据源错误报错解决方法springboot-mybatis多数据源及踩坑springboot项目结构如下springboot配置文件…

    2022年01月14日 开发语言

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2022  萬仟网 保留所有权利. 粤ICP备17035492号-1
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com