Android Studio day_01 初识线性布局和相对布局还有按钮

2023-10-26

序章:

今天学习了线性布局(LinearLayout)和相对布局(RelativeLayout)还有Button按钮,布局是要用</LinearLayout>和</RelativeLayout>进行结束的,至于Botton按钮嘛,使用/>结束就好啦

相对布局(RelativeLayout)

相对布局我理解的就是相对于某个事物的布局(当然了我这是垃圾理解,等我以后学成了再来改正吧),线性布局我理解为可以作为横向和竖向的布局,可别小看了这两布局,可有大用处嘞,像是相对布局吧,可以设置他布局中的控件在左对齐(android:layout_alignParentLeft="true"),右对齐(android:layout_alignParentRigth="true"),下对齐(android:layout_alignParentBottom="true"),至于上对齐吗,Emm默认就是在上面,当然了居中是必不可少的(正是因为这个我喜欢用相对布局),竖向居中(android:layout_centerVertical="true"),横向居中(android:layout_centerHorizontal="true" ) 什么?你问我居中啥意思,就是在相对布局中居中呗

线性布局(LinearLayout)

然后就来到了第二个布局格式:线性布局(LinearLayout)这个布局真的是困扰我好久,线性布局呢我理解的就是它可以纵向或者横向的分配你的控件,不理解是吗?哈哈那就对了,我来解释下吧,我理解的就是可以让你在该布局内的控件或者或者是布局可以按照他所要求的的横向或者是纵向来进行排列,还是不理解是吧,没事,我也没那么理解,嘿嘿,但是嘛,他里面会有两个属性竖向排列(android:orientation="vertical")和纵向排列(android:orientation="horizontal")顾名思义,就是说让线性布局中的控件亦或者是布局按照横向或者是纵向的方式进行排列,当然了这些对于线性布局来说还远远不够,你可以在他的子布局和子控件设置他的居中属性,是不是还蛮有意思的,竖向居中可以使用 (android:layout_gravity="center_vertical"),横向居中可以使用(android:layout_gravity=center_horizontal)是不是发现了,线性布局双引号中的对齐方式就是相对布局中的对齐方式,嘿嘿,简单吧。当然了,还有布局的宽度和高度这里面呢使用了两种属性铺满(android:layout_width="match_parent")和(android:layout_width="wrap_content")自适应,我理解的铺满是整个界面进行铺满,自适应就是他会使根据自己布局中的控件大小的变化而变化,至于对不对呢我也不知道,得问我的老师,嘿嘿。

按钮(Button):

按钮的设置嘛,就是<Button 一大堆内容   />,什么?,你问我一大堆内容是什么?接下来我来说,按钮显示内容<android:text="按钮的名称">,按钮的id嘛就是这样定义的,我目前理解为他是唯一的<android:id="@+id/按钮id名">,至于你问我为啥是@+id/后+按钮id名,我哪知道,问我老师去,言归正传,这个ID可有大用处,他可以让你的控件在相对布局按照你想要的方式排列,至于排列呢,类似于这样<android:layout_below="@+id/在哪个按钮下面的按钮id>,要是在哪个按钮上面当然也是可以的类似于这样<android:layout_above="@+id/在哪个按钮上面的按钮id">,同理左边右边也是可以的类似于这样。左边<android:layout_toLeftOf="@+id/在哪个按钮左面的按钮id">,右边<android:layout_toRightOf="@+id/在哪个按钮右面的按钮id">,是不是很简单(我老师是这么和我说的),好了好像今天老师就说了这么多,结尾附上一句吧,证明我还坚持的下去(偷偷告诉你代码在下面)

                                                                                                                 持之以恒

代码如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    <Button
        android:text="按钮1"
        android:layout_width="100dp"
        android:layout_height="40dp"/>
        <Button
            android:text="按钮9"
            android:layout_width="100dp"
            android:layout_height="40dp"/>
        <Button
            android:text="按钮10"
            android:layout_width="100dp"
            android:layout_height="40dp"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <Button
            android:id="@+id/bt2"
            android:layout_width="100dp"
            android:layout_height="40dp"
            android:layout_alignParentRight="true"
            android:layout_marginLeft="300dp"
            android:text="按钮2" />

    </LinearLayout>

    <Button
        android:layout_alignParentBottom="true"
        android:text="按钮3"
        android:layout_width="100dp"
        android:layout_height="40dp"/>
    <Button
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:text="按钮4"
        android:layout_width="100dp"
        android:layout_height="40dp"/>

    <Button
        android:id="@+id/bt5"
        android:layout_width="100dp"
        android:layout_height="40dp"
        android:layout_centerInParent="true"
        android:text="按钮5" />

    <Button
        android:layout_width="100dp"
        android:layout_height="40dp"
        android:layout_centerVertical="true"
        android:layout_toLeftOf="@+id/bt5"
        android:text="按钮6" />

    <Button
        android:layout_width="100dp"
        android:layout_height="40dp"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@+id/bt5"
        android:text="按钮7" />

    <Button
        android:layout_width="100dp"
        android:layout_height="40dp"
            android:layout_below="@+id/bt5"
        android:layout_centerHorizontal="true"
        android:text="按钮8" />

    <Button
        android:layout_width="100dp"
        android:layout_height="40dp"
        android:layout_above="@+id/bt5"
        android:layout_centerHorizontal="true"
        android:text="按钮9" />


</RelativeLayout>

你会发现按钮2还有点没写完,哎,太困了,有时间在补吧

                                      

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Studio day_01 初识线性布局和相对布局还有按钮 的相关文章

  • 使用线程或异步任务的位图工厂动画

    这个问题是我在这个论坛上提出的多个问题的后续问题 这些问题涉及为什么我一直在尝试的动画不起作用 简单回答一下之前的问题 我的动画作为 2 个班级的单独项目工作 但无法工作 当包含在我的包含多个类的项目中时 使用 finish 类关闭了导致我
  • UnsatisfiedLinkError:dlopen 失败:无法找到引用的符号“__aeabi_memcpy4”

    我刚刚从 NDK 12 x 更新到 13 x 现在遇到以下崩溃 Caused by java lang UnsatisfiedLinkError dlopen failed cannot locate symbol aeabi memcpy
  • 如何向我的 Android 应用程序授予系统权限?

    我正在实现一个从设备上静默卸载应用程序的演示 在 adb shell 中 我可以使用 pm uninstall packagename 来执行任务 但是当我编写代码时 我收到了一些权限被拒绝的错误 我已经用谷歌搜索了一段时间 发现要获得 D
  • Titanium 创建图像文件:file.write(blob) 未创建正确的文件

    我正在尝试使用 Titanium 1 8 1 读取 PNG 文件 这是我读取文件的代码 var f Ti Filesystem getFile Ti Filesystem resourcesDirectory KS nav views pn
  • 减少 OpenGL ES 1.1 中纹理的内存使用

    我在 OpenGL ES 中的场景需要几个大分辨率纹理 但它们是灰度的 因为我仅将它们用于蒙版 我需要减少内存使用 我尝试使用 Bitmap Config ALPHA 8 和 RGB 565 加载这些纹理 ALPHA 8 似乎实际上增加了内
  • NullPointerException 自定义列表视图适配器

    你好 stackoverflow 社区 我在扩展 BaseAdapter 的自定义适配器类的 getView 方法中得到了一个 NPE 我希望你可以帮助我 这是我的 getView 方法 Override public View getVi
  • 检查 Web 服务中的 Json

    我的 json 有问题 我希望我的 Json 看起来像 data phoneId 1 token APA91bF2tN5g1TtULFE5tysRMAarygjX4w9hjTGCqT3SL PwiMV6aqTtkV3lpqLkc7msVfE
  • 当滚动 Recyclerview 单选按钮更改其选择时

    我正在使用 RecyclerView 设置单选按钮 选定的按钮选择在滚动时会更改其位置 请帮助我 Thanx in advance 我的 RecylerView 布局
  • 小米Exif方向标签错误

    我在用着ExifInterface对于通过检测方向标签从图库中选取的旋转图像 它正在工作 最近我在小米9 SE上测试了应用程序 发现相机拍摄的照片有方向标签8 旋转270 但照片方向是正确的 不需要旋转 为什么方向标签错误 如何找到正确的旋
  • 不同屏幕尺寸下的VideoView

    我正在尝试插入适合不同尺寸屏幕的视频 我想要的是良好的分辨率并且不失真 我有两个适合大屏幕和小屏幕的视频 但我不知道如何插入它们 我认为这就像从可绘制文件 hdpi ldpi 等 中插入图像一样 您可以将图像添加到所需的分辨率文件夹中 但我
  • Android 模拟器出现错误:冷启动:快照不存在

    我在使用 Android 模拟器 7 8 天后就遇到了问题 起初它根本没有运行 现在重新安装模拟器解决了这个问题 但又产生了新的问题 每当我运行模拟器时 都会花费很长时间 大约 5 6 分钟 然后显示错误 Cold Boot Snapsho
  • Android facebook 4.0.0 分享对话框不分享内容

    几个小时以来 我一直在尝试通过 facebook 4 0 0 sdk 分享我的 android 应用程序中的内容 我完全按照Facebook 分享文档 https developers facebook com docs sharing a
  • Android JSoup 示例

    我只是想知道是否有人有一个包含 JSoup 的工作实现的示例 Eclipse 项目 我试图用它从网站上获取信息 并在谷歌上到处搜索试图让它工作 但不能 如果有人可以提供帮助 我将非常感激 JSoup 真的很容易使用 看看 JSoup 食谱中
  • Android 上的 iptables 1.4.11

    我已经从以下位置下载了 Android 内核源代码http source android com source building kernels html http source android com source building ke
  • 如何获取屏幕触摸的 x,y 坐标?

    当我的应用程序运行时 每当有人触摸屏幕时 是否有一种简单的方法来获取 x y 坐标 只是想将它们存储在一些整数中 覆盖onTouchEvent MotionEvent event 然后打电话event getX and event getY
  • 在 Google Play 中更新 APK 而不更改扩展文件

    我的 Google Play 控制台中有一个 草稿 APK 它已连接到 APK 扩展文件 版本号为9 扩展文件为 main 9 com something something obb 现在 我正在尝试在发布之前更新 APK 我增加了版本代码
  • 无法查看数据选择器上的当前数据

    我创建了一个自定义数据选择器 其中显示 1950 年至 2016 年的年份 现在 当我第一次打开选择器时 我想设置当天的当前数据 但我无法将其设置为当前数据 第一次启动后 它的工作原理与我希望的完全一样 这是我迄今为止尝试过的代码 priv
  • Android AudioRecord 与 MediaRecorder 录制音频

    我想在我的 Android 手机上录制人声 我注意到 Android 有两个类可以做到这一点 录音带 http developer android com reference android media AudioRecord html a
  • 立即运行所有 Xcode 的“Fix-it”

    升级到 Xcode 7 后 为了支持 iOS 9 我修复了数百个错误和警告 是否有一个按钮可以让 Xcode 全部运行它们 而不是单独一个一个地运行它们 There is actually a solution for this in Xc
  • 监控当前运行的应用程序

    我遇到了一个暂时无法解决的问题 该代码的目的是监视当前正在运行哪些应用程序 我使用了以下代码并记录了生成的包名称 它起作用了 ActivityManager am ActivityManager context getSystemServi

随机推荐

  • 常用网络协议神图

  • 凸优化(一)——Introduction

    Introduction 一 最优化问题的数学表达 在最优问题中 其数学表达往往能化成标准形式 如下 minimizef0 x subject tofi x bi i 1 m begin aligned minimize quad f 0
  • 微信小程序对上传的图片进行裁剪

    背景 使用uniapp中uni chooseImage的裁剪参数crop只能在App中生效 在微信小程序中不生效 实现思路 uni chooseImage打开相册获取图片路径 uni chooseImage OBJECT uni app官网
  • c++面试记录

    1 数组与指针区别 数组 数组是用于储存多个相同类型数据的集合 指针 指针是一个变量 但是它和普通变量不一样 它存放的是其它变量在内存中的地址 赋值 数组 只能一个一个元素的赋值或拷贝 指针 指针变量可以相互赋值 表示范围 数组有效范围就是
  • flink table 使用Kafka Connector处理嵌套json

    使用flink table api 连接kafka 处理json类型数据 单层json处理比较简单 官方或网上都有很多例子 处理嵌套的json数据没什么介绍 处理嵌套json数据主要是schema定义 StreamExecutionEnvi
  • Linux系统之使用yum安装Redis数据库

    Linux系统之使用yum安装Redis数据库 一 redis介绍 1 redis解释 2 redis特点 3 redis使用场景 二 检查系统版本 1 检查系统版本 2 检查内核版本 三 检查yum仓库状态 四 查看系统默认提供的redi
  • mysql数据恢复,使用binlog配置恢复未备份数据

    使用mysqlbinlog配置 恢复数据库 什么是mysqlbinlog binlog是记录所有数据库表结构变更 例如CREATE ALTER TABLE 以及表数据修改 INSERT UPDATE DELETE 的二进制日志 binlog
  • 命令行参数设计

    1 目的 众多通用的小功能 制作为一个小工具 然后通过命令行来进行交互 使用非常的简便 本规范是为了统一命令行参数的设计 使得大家在制作或使用命令行工具时 能够更加有共享 进行会更加方便 2 适用范围 所有命令行工具参数的设计 3 基本原则
  • #SATA# SATA 实际管脚接线图

    前言 概述 实际接线管脚图 PATA 接口 M 2 U 2 AHCI NVMe 概述 SATA是Serial ATA的缩写 即串行ATA 它是一种电脑总线 主要功能是用作主板和大量存储设备 如硬盘及光盘驱动器 之间的数据传输 这是一种完全不
  • 迁移学习:他山之石,可以攻玉【VALSE Webinar】Panel实录

    编者按 迁移学习是机器学习与计算机视觉中的重要研究问题之一 旨在研究如何将一个领域的知识迁移到另外的领域 具有重要的研究意义与应用价值 但迁移学习又会存在哪些局限性 在实际应用中的价值是什么 未来的发展方向在哪里 为此 VALSE Webi
  • docker 数据持久化

    文章目录 定制镜像持久化 需求 实现 数据卷持久化 数据卷简介 数据卷的特性 创建读写数据卷 停止容器后的操作 查看数据卷详情 创建只写数据卷 查看数据卷详情 创建共享数据卷 Dockerfile持久化 创建Dockerfile 构建和运行
  • 大二上学期数据结构课程设计

    1 报数问题 问题描述 有n个小朋友围成一圈玩游戏 小朋友从1至n编号 2号小朋友坐在1号小朋友的顺时针方向 3号小朋友坐在2号小朋友的顺时针方向 1号小朋友坐在n号小朋友的顺时针方向 游戏开始 从1号小朋友开始顺时针报数 接下来每个小朋友
  • 安装TensorFlow遇到no module named ‘tensorflow’问题解决方法

    按照这个博客https blog csdn net qq 16633405 article details 79941696里的步骤安装TensorFlow时遇到no module named tensorflow 虽然作者给出了一个解决方
  • 文本多分类之Doc2Vec实战篇

    本文链接 https blog csdn net weixin 42608414 article details 88391760 版权 在我之前的几篇博客中 我介绍了两种文档向量化的表示方法 如Sklearn的CountVectorize
  • 1.3. 分治法—最近点对问题

    1 问题描述 给定平面S上n个点 找其中的一对点 使得在n个点组成的所有点对中 该点对间的距离最小 2 求解过程 划分 将集合S分成两个大小基本相等的子集 S 1 S 1 S1 和 S
  • linux 基础知识考试试题,Linux常识型试题

    Linux常识型试题 发布时间 2011 06 06 18 11 10来源 红联作者 lijiang i s 本帖最后由 lijiang 于 2011 10 22 17 51 编辑 i 一 填空题 1 链接分为 和 2 安装Linux系统对
  • 解决Linux界面显示问号字符?与Failed to set locale, defaulting to C报错

    解决方法 暂时性处理 export LC ALL zh CN UTF 8 一劳永逸 vim etc bashrc 然后在最后一行写入 export LC ALL zh CN UTF 8 问题复现 解析 当输入 locale 会得到如下结果
  • 数据结构----利用栈实现表达式的计算

    利用栈实现表达式的计算 例如 12 5 6 9 7 8 5 6 8 5 6 12 要解决的问题主要有两个 和 的运算顺序的处理问题 括号内的表达式优先运算问题 这里利用栈来解决这两个问题 首先我们设置两个栈 一个符号栈 一个数字栈 下面我们
  • Novell数据备份

    从昨天下午到现在 才搞定 关总不提示的情况下 我一直认为xvRf是更新备份数据 cvRf是全部备份 其实则不然 关总告诉我 xvRf是导入数据 而cvRf才是备份数据 如果网络成功链接的话 那NDS服务器的数据就会被老数据覆盖了 幸好幸好
  • Android Studio day_01 初识线性布局和相对布局还有按钮

    序章 今天学习了线性布局 LinearLayout 和相对布局 RelativeLayout 还有Button按钮 布局是要用和进行结束的 至于Botton按钮嘛 使用 gt 结束就好啦 相对布局 RelativeLayout 相对布局我理