当前位置: 首页 > news >正文

AndroidStudio相对布局

目录

RelativeLayout常用属性(它们可以几个结合在一起使用):

相对于父容器居中

 相对于父容器对齐

相对于其它控件位置

相对于其它控件对齐

标识符问题

实例演示


RelativeLayout类是ViewGroup的子类也就是相对布局

RelativeLayout常用属性(它们可以几个结合在一起使用):

相对于父容器居中

属性含义
layout_centerInParent在父容器居中
layout_centerHorizontal在父容器水平居中(true | false)
layout_centerVertical在父容器垂直居中

 相对于父容器对齐

属性含义
layout_alignParentLeft与父容器左对齐
layout_alignParentRight与父容器右对齐
layout_alignParentTop与父容器顶对齐
layout_alignParentBottom与父容器底对齐

相对于其它控件位置

属性含义
layout_toLeftOf在……左边
layout_toRightOf在……右边
layout_above在……上面
layout_below在……下面

相对于其它控件对齐

属性含义
layout_alignLeft与……左对齐
layout_alignRight与……右对齐
layout_alignTop与……顶对齐
layout_alignBottom与……底对齐
layout_alignBaseLine与……基线对齐

标识符问题

标识符含义
@+id/button创建新的id(建议使用)
@id/button引用已有的id

实例演示

1.新建一个文件

插入一张图片

 打开字符串资源文件 strings.xml

 在里面输入要用的值

 具体代码:

<resources><string name="app_name">相对布局演示</string><string name="upper_left_corner">左上角</string><string name="upper_right_corner">右上角</string><string name="lower_left_corner">左下角</string><string name="lower_right_corner">右下角</string><string name="center">中央</string><string name="upper_left">左上</string><string name="upper_right">右上</string><string name="lower_left">左下</string><string name="lower_right">右下</string><string name="upper_center">上中</string><string name="left_center">左中</string><string name="right_center">右中</string><string name="butter_center">下中</string><string name="ok">确定</string><string name="cancel">取消</string>
</resources>

 打开主布局资源文件:

改为相对布局并添加中央按钮

 具体代码

<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="@drawable/img01"tools:context=".MainActivity"><Buttonandroid:id="@+id/btu_center"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/center"android:layout_centerInParent="true"/>
</RelativeLayout>

以此类推添加其他按钮

具体代码:

<?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="@drawable/img01"tools:context=".MainActivity"><Buttonandroid:id="@+id/btu_center"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/center"android:layout_centerInParent="true"/><Buttonandroid:id="@+id/btu_upper_left"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/upper_left"android:layout_toLeftOf="@id/btu_center"android:layout_above="@id/btu_center"/><Buttonandroid:id="@+id/btu_upper_right"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/upper_right"android:layout_toRightOf="@id/btu_center"android:layout_above="@id/btu_center"/><Buttonandroid:id="@+id/btu_lower_left"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/lower_left"android:layout_toLeftOf="@id/btu_center"android:layout_below="@id/btu_center"/><Buttonandroid:id="@+id/btu_lower_right"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/lower_right"android:layout_toRightOf="@id/btu_center"android:layout_below="@id/btu_center"/><Buttonandroid:id="@+id/btu_ok"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/ok"android:layout_below="@id/btu_lower_left"android:layout_alignLeft="@id/btu_lower_left"/><Buttonandroid:id="@+id/btu_cancel"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/cancel"android:layout_below="@id/btu_lower_right"android:layout_alignLeft="@id/btu_lower_right"/><Buttonandroid:id="@+id/btu_upper_left_corner"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_alignParentTop="true"android:text="@string/upper_left_corner"/><Buttonandroid:id="@+id/btu_upper_right_corner"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_alignParentTop="true"android:text="@string/upper_right_corner"/><Buttonandroid:id="@+id/btu_lower_left_corner"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_alignParentBottom="true"android:text="@string/lower_left_corner"/><Buttonandroid:id="@+id/btu_lower_right_corner"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_alignParentBottom="true"android:text="@string/lower_right_corner"/><Buttonandroid:id="@+id/btu_upper_center"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/upper_center"android:layout_alignParentTop="true"android:layout_centerHorizontal="true"/><Buttonandroid:id="@+id/btu_left_center"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/left_center"android:layout_alignParentLeft="true"android:layout_centerVertical="true"/><Buttonandroid:id="@+id/btu_right_center"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/left_center"android:layout_alignParentRight="true"android:layout_centerVertical="true"/><Buttonandroid:id="@+id/btu_butter_center"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/butter_center"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"/></RelativeLayout>

 启动应用查看效果:

 

 

相关文章:

AndroidStudio相对布局

目录 RelativeLayout常用属性&#xff08;它们可以几个结合在一起使用&#xff09;&#xff1a; 相对于父容器居中 相对于父容器对齐 相对于其它控件位置 相对于其它控件对齐 标识符问题 实例演示 RelativeLayout类是ViewGroup的子类也就是相对布局 RelativeLayout常用属…...

如何用iOS自带摄像头进行拍摄获取视频流以及OpenCV图像处理实时显示

目录概述一、如何用Swift调用OpenCV库1.项目引入OpenCV库2.桥接OpenCV及Swift二、运用AVFoundation获取实时图像数据1.建立视频流数据捕获框架2.建立 Capture Session3.取得并配置 Capture Devices4.设定 Device Inputs5.配置Video Data Output输出6.工程隐私权限配置7.处理相机…...

智安网络|为什么说防火墙是我们信息安全的第一道防线?

网络安全现状&#xff1a; ①攻击者需要的技术水平逐渐降低&#xff0c;手段更加灵活&#xff0c;联合攻击急你的剧增多&#xff1a;网络蠕虫具有隐蔽性、传染性、破坏性、自主攻击能力&#xff0c;新一代网络蠕虫和黑客攻击、计算机病毒之间的界限越来越模糊 ②网络攻击趋利…...

Android多媒体功能开发(8)——使用VideoView控件播放视频

Android播放视频类主要有两种方式&#xff1a; VideoView控件SurfaceView控件MediaPlayer VideoView是SurfaceView的子类&#xff0c;实际上VideoView相当于SurfaceView MediaPlayer。SurfaceView支持的功能VideoView都支持。也可用VideoViewMediaPlayer的方式播放。 视频播放…...

python调用CC++

python调用C程序 一般来说在python调用C/C程序主要可以分为3步&#xff1a; 1、编写C/C实现程序。2、将C/C程序编译成动态库。-3、在Python中调用编译生成的库。Python在调用C/C程序时有一些不同&#xff0c;需要注意。 Python调用C语言程序比较简单&#xff0c;将C语言程序…...

[golang gin框架] 10.Gin 商城项目介绍

一.商城项目介绍 1.详细功能介绍图 2.数据库 ER 图 需要用到的数据表举例 二.MVC架构搭建以及执行流程分析 1.关于 MVC 模式的简单介绍 Gin 不是一个 MVC 的框架&#xff0c;所有的代码都可以写在 main.go 中。当我们的项目比较大的时候&#xff0c; 所有代码写在一个文件里面…...

Endor Labs:2023年十大开源安全风险

近日&#xff0c;Endor Labs发布了一份新报告&#xff0c;确定了2023年的十大开源安全风险。报告显示&#xff0c;许多软件公司依赖于开源软件代码&#xff0c;但在如何衡量和处理与开源软件相关的风险和漏洞方面缺乏一致性。调查发现&#xff0c;在应用程序中超过80%的代码可能…...

关于Error和Exception的一些思考 小结

目录 1. ERROR 2. Exception 2.1 checked Exception 2.2 unchecked Exception 2.3 区别 3. 内存溢出 3.1 堆溢出 3.2 永久代/元空间溢出 3.3 方法栈溢出 Java中&#xff0c;所有的异常都有一个共同的父类&#xff1a;Throwable类。 Throwable类有两个重要的子类&#…...

Mac环境变量配置(Java)

1.打开终端&#xff1a; 2.输入命令&#xff1a;【/usr/libexec/java_home -V】,查看默认的jdk下载地址&#xff08;绿色下划线的就是jdk默认路径&#xff09;&#xff08;注意⚠️&#xff1a;命令行终端是区分大小写的【-v 是不对的&#xff0c;必须是大写 -V】&#xff09; …...

通过这三个文件彻底搞懂rocketmq的存储原理

前言 RocketMQ是阿里开发的一个高性能的消息队列&#xff0c;支持各种消息类型&#xff0c;而且支持事务消息&#xff0c;可以说是现在的很多系统中的香饽饽了&#xff0c;所以呢&#xff0c;怎么使用大家肯定是要学习的 我们作为一个有梦想的程序员&#xff0c;在学习一门技…...

Linux安装Nvidia显卡驱动

使用的Linux系统为 Ubuntu 18.04&#xff0c;显卡为GeForce RTX 3060 。 查看ubuntu版本号命令&#xff1a;sudo lsb_release -a 查看显卡型号命令&#xff1a;lspci | grep -i vga &#xff08;详细查看方法&#xff1a; 查看显卡型号&#xff09;。 下面是安装显卡驱动步…...

GPT-4 介绍

1 简介 本文根据openAI的2023年3月的《GPT-4 Technical Report 》翻译总结的。 原文地址&#xff1a;https://arxiv.org/pdf/2303.08774.pdf 原文确实没有GPT-4 具体的模型结构&#xff0c;openAI向盈利组织、非公开方向发展了。也没透露硬件、训练成本、训练数据、训练方法等…...

Ubuntu下单机安装Hadoop详细教程(附所需安装包下载)

目录 前言 一、创建Hadoop用户 二、更新apt和安装Vim编辑器 三、安装SSH和配置SSH无密码登录 四、安装Java环境 1. 安装JDK 2. 配置JDK环境 3. 检验安装 五、安装单机Hadoop 1. 下载安装Hadoop 2. 运行示例 总结 前言 本文安装的 Hadoop 及 Java 环境基于林子雨老…...

【嵌入式烧录/刷写文件】-2.1-详解Intel Hex格式文件

目录 1 什么是Intel Hex 2 Intel Hex的格式 2.1 Intel Hex的Record结构 2.1.1 “Record type记录类型”的说明 2.1.2 “Record length记录长度”的说明 2.1.3 如何计算“Checksum校验和” 2.2 Record order记录顺序 2.3 Text line terminators文本行终止符 3 Hex文件的…...

【云原生】初识 Kubernetes — pod 的前世今生

目录标题前言&#x1f433; Kubernetes到底是什么&#xff1f;&#x1f42c; K8s 的由来&#x1f42c;K8s 的工作方式&#x1f42c; K8s 主要组件&#x1f40b;Master 组件&#x1f40b;Node 组件&#x1f433; pod 是什么&#xff1f;&#x1f42c;pod 的概念&#x1f42c;控制…...

【基础篇】Java类加载器详解

类加载过程详解 类的生命周期 类从被加载到虚拟机内存到开始卸载出内存为止&#xff0c;生命周期可以简单概括为7个阶段&#xff1a;加载&#xff08;Loading&#xff09;、验证&#xff08;Verification&#xff09;、准备&#xff08;Preparation&#xff09;、解析&#xff…...

Pytorch动手实现Transformer机器翻译

Pytorch动手实现Transformer机器翻译前言一、环境配置1. torchtextMethod1&#xff1a;Method2&#xff1a;2. Spacy以en包下载为例&#xff1a;手动安装语言包到spacy3. NLTKMethod1&#xff1a;Method2&#xff1a;二、运行结果1. 模型训练&#xff08;train&#xff09;2. 翻…...

宝塔面板部署node+vue项目注意事项

宝塔面板部署nodevue项目注意事项 宝塔连接云服务器 如果服务器上没有安装宝塔面板&#xff0c;需要先安装&#xff0c;安装流程如下&#xff1a; 从宝塔官网主页进去&#xff0c;点击下载安装&#xff0c;然后点击在线安装 输入服务器IP和密码在服务器上安装宝塔面板 等待一…...

【LeetCode】剑指 Offer 39. 数组中出现次数超过一半的数字 p205 -- Java Version

题目链接&#xff1a;https://leetcode.cn/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban-de-shu-zi-lcof/ 1. 题目介绍&#xff08;39. 数组中出现次数超过一半的数字&#xff09; 数组中有一个数字出现的次数超过数组长度的一半&#xff0c;请找出这个数字。 你可…...

fisco bcos用caliper0.2.0进行压力测试的安装配置

一、前期环境 1. 硬件 需要外网权限 2. 操作系统 版本要求&#xff1a;Ubuntu > 16.04, CentOS > 7, MacOS > 10.14 3. 基础软件 python 2.7&#xff0c;make&#xff0c;g&#xff0c;gcc&#xff0c;git sudo apt install python2.7 make g gcc git curl git confi…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!

目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...

Canal环境搭建并实现和ES数据同步

作者&#xff1a;田超凡 日期&#xff1a;2025年6月7日 Canal安装&#xff0c;启动端口11111、8082&#xff1a; 安装canal-deployer服务端&#xff1a; https://github.com/alibaba/canal/releases/1.1.7/canal.deployer-1.1.7.tar.gz cd /opt/homebrew/etc mkdir canal…...

C++11 constexpr和字面类型:从入门到精通

文章目录 引言一、constexpr的基本概念与使用1.1 constexpr的定义与作用1.2 constexpr变量1.3 constexpr函数1.4 constexpr在类构造函数中的应用1.5 constexpr的优势 二、字面类型的基本概念与使用2.1 字面类型的定义与作用2.2 字面类型的应用场景2.2.1 常量定义2.2.2 模板参数…...