Android选择题界面的设计——线性布局实操

目录

    • 任务目标
    • 任务分析
    • 任务实施

任务目标

使用TextView、Button、CheckBox等实现一个选择题界面,界面如图1所示。
在这里插入图片描述

图1 选择题界面效果图

任务分析

上述界面可以分解为上下两部分,上面部分可以使用横向的线性布局来完成,下面部分可以使用纵向的线性布局来完成,如图2所示。
在这里插入图片描述

图2 选择题界面分解

任务实施

1.新建工程
新建工程一个名为Quiz的应用程序,选择“Empty Views Activity”,指定包名为cn.edu.jssvc.quiz。
2.定义字符串
打开res/values/string.xml,定义本工程界面上需要用到的字符串,如图3所示,代码如下。

<resources><string name="app_name">Quiz</string><string name="quizType">多选题</string><string name="stem">你喜欢的课程有</string><string name="optionA">Android</string><string name="optionB">Java</string><string name="optionC">C语言</string><string name="optionD">Python</string><string name="next">下一题</string>
</resources>

在这里插入图片描述

图3 res/values/string.xml
3.设计界面
1)使用线性布局设计界面,打开activity_mail.xml,切换为Code视图,将Code中的约束布局(ConstraintLayout)改为线性布局(LinearLayout),添加线性布局的orientation属性,将其值设为“vertical”,并将其中的控件删除,修改完成后如图4所示。
在这里插入图片描述

图4 修改布局方式
2)切换回Design视图,将Palette区的一个LinearLayout(horizontal)和一个LinearLayout(vertical)用鼠标拖到Component Tree区,注意层次关系。将上述两个LinearLayout的android:layout_height属性值修改为wrap_content。
在这里插入图片描述

图5 添加线性布局
3)将TextView、Button控件拖到LinearLayout(horizontal),将4个CheckBox拖到LinearLayout(vertical)中,拖动的时候注意Component的层次结构,完成后界面如图6所示。
在这里插入图片描述

图6 添加线性布局
4)修改上述TextView、Button、CheckBox控件的text属性值,将其指向string.xml中的值,例如将TextView控件的值设为@string/stem,则该TextView即显示string.xml中stem的值,即“你喜欢的课程有”,如图7所示。
在这里插入图片描述

图7 设置text属性
5)接下来美化界面,调整各控件的textSize为20sp,调整父线性布局的padding为10dp,LinearLayout(vertical)的padding为5dp,调整完后运行应用,运行效果如图8所示。
在这里插入图片描述

图8 运行效果图

节选自《Android应用开发项目式教程》(机械工业出版社)

源代码请查看:
source/v1.0/Project2Layout/Quiz
Gitee

手把手视频请查看:

Android选择题界面的设计——线性布局实操

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/865933.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

独家带你get懂印尼直播工具APP借助海外快手kwai短视频广告推广优势

独家带你get懂印尼直播工具APP借助海外快手kwai短视频广告推广优势 随着全球互联网的迅猛发展和移动互联网的普及&#xff0c;广告投放已经成为企业扩大品牌影响力、获取潜在客户的重要手段之一。在印尼这一充满活力的市场中&#xff0c;直播工具APP的广告投放尤为关键。海外快…

快速了解 | 企业代码签名证书怎么弄

企业代码签名证书是用于签名软件、驱动程序、代码库等的数字证书&#xff0c;它能够保证软件的完整性和来源的真实性&#xff0c;从而提升用户对软件的信任度&#xff0c;消除电脑系统对于“未知发布者”软件的安装拦截和弹窗警告&#xff0c;消除微软的SmartScreen提醒。 1、…

ArmPiPro-多人同时开发

V0.0 2024.07.04 ROS节点间的通信是分布式的&#xff0c;也就是节点可以运行在不同的”主机“上&#xff0c;这些主机包括安装在机器人上的主控&#xff08;Pi4&#xff09;、通过串口连接PI4的烧写有Serialros的MCU从控、负责视觉开发的VM1、负责移动的VM2、负责机械臂的VM3都…

【自适应滤波系列四】回声消除(Acoustic Echo Cancellation, AEC)信号模型及其本质

什么是回声 关于回声的产生与传播,凌逆战(https://www.cnblogs.com/LXP-Never)大佬在其博客中阐述得很详细,可以去看他的博客,下面部分图片来源于其博客 回声就是声音信号经过一系列反射之后,又听到了自己讲话的声音,这就是回声。一些回声是必要的,比如剧院里的音乐回声…

海豚调度监控:新增依赖缺失巡检,上游改动再也不用担心了!

&#x1f4a1; 本系列文章是 DolphinScheduler 由浅入深的教程&#xff0c;涵盖搭建、二开迭代、核心原理解读、运维和管理等一系列内容。适用于想对 DolphinScheduler了解或想要加深理解的读者。 祝开卷有益:) 用过 DolphinScheduler 的小伙伴应该都知道&#xff0c;Dolphin…

代理IP和VPN有什么区别?该怎么选择?

今天我们来聊聊很多人关心的一个问题——代理IP和VPN到底有什么区别&#xff1f;虽然它们听起来差不多&#xff0c;但其实有很大的不同。这篇文章&#xff0c;小编就带大家一起了解一下吧&#xff01; 什么是代理IP&#xff1f; 代理IP是一种通过代理服务器替换用户真实IP地址…

第3章.中央服务器的物联网模式--AI/ML集成

第3章.中央服务器的物联网模式 本章列出了由于存储和/或计算需求而部署在中央服务器上以及部署在边缘&#xff08;本地&#xff09;或云上的体系结构模式。 这些模式基于现场设备生成的数据提供见解&#xff0c;使用附加数据&#xff08;来自附加系统&#xff0c;如企业系统&am…

【数据结构】建堆的时间复杂度

一.向下调整建堆 1.二叉树层数与总节点个数关系 层数一定时&#xff0c;在二叉树节点个数最大的情况下&#xff0c;二叉树为满二叉树&#xff0c;如下图所示&#xff0c;可以清晰地看到在满二叉树中第h层有2^(h-1)个节点&#xff0c;总节点N就等于一个等比数列的求和&#xf…

6.基于SpringBoot的SSMP整合案例-业务层开发

目录 1.业务层标准开发 1.1接口定义 1.2实现类定义 1.3测试类定义 1.4小结&#xff1a; 2.业务层快速开发 2.1使用MyBatisP1us提供有业务层通用接口(ISerivce)与业务层通用实现类(ServiceImpl),t> 接口定义&#xff1a; 实现类定义&#xff1a; 测试类&#xff1a; …

AI绘画Stable Diffusion 超高分辨率扩图教程:ControlNet组件-Tile妙用,增强细节保持构图完整!

大家好&#xff0c;我是向阳 今天给大家分享如何用AI绘画工具Stable Diffusion 的 ControlNet Tile工具应用。ControlNet Tile模型能够在SD绘图过程中&#xff0c;实现高分辨率下实现高清扩图&#xff0c;并且避免出现图像分身现象&#xff0c;以及可以调整SD扩散生产过程噪声…

Linux下安装opencv

本次安装的是 opencv3.4.1&#xff0c;在java里面对应的maven配置是 <dependency><groupId>org.bytedeco.javacpp-presets</groupId><artifactId>opencv</artifactId><version>3.4.1-1.4.1</version> </dependency>安装依赖包…

el-date-picker 开始时间选定后,结束时间不可选择开始时间之前的日期

<el-date-pickerv-model"startTime"name"startTime"value-format"yyyy-MM-dd"type"date"change"activityStartTime"placeholder"请选择开始日期":picker-options"pickerOptions"/> <el-date-p…

python项目实战(二手房屋出租系统)

文章目录 1.系统概述2.技术栈3.系统功能4.核心代码分析5. 代码实现6.实现细节6.未来改进方向 在当今数字化时代&#xff0c;自动化和数字化管理工具对于提高效率至关重要。在这篇博客中&#xff0c;我们将一起探索如何使用Python编程语言来创建一个简单的二手房屋出租管理系统。…

Unity射击游戏开发教程:(29)躲避敌人的子弹射击

在这篇文章中,我将介绍如何创建一个可以使玩家火力无效的敌人。创建的行为如下...... 当玩家向敌人开火时,敌人会向左或向右移动。向左或向右的移动是随机选择的,并在一段时间后停止敌人的移动。如果敌人移出屏幕,它就会绕到另一边。将一个精灵拖到画布上,将其缩小以匹配游…

代码随想录-二叉搜索树①

目录 二叉搜索树的定义 700. 二叉搜索树中的搜索 题目描述&#xff1a; 输入输出示例&#xff1a; 思路和想法&#xff1a; 98. 验证二叉搜索树 题目描述&#xff1a; 输入输出示例&#xff1a; 思路和想法&#xff1a; 530. 二叉搜索树的最小绝对差 题目描述&#x…

几个好用json数据处理工具地址

一、在线JSON转SQL工具 在线JSON转SQL - BTool在线工具软件&#xff0c;为开发者提供方便。 二、免费在线 Excel 到 SQL 转换器 免费在线 Excel 到 SQL 转换器 - bfotool 三、json格式化 JSON在线 | JSON解析格式化—SO JSON在线工具 四、json转实体类 在线JSON转C#实体类&…

python实现支付宝异步回调验签

说明 python实现支付宝异步回调验签&#xff0c;示例中使用Django框架。 此方案使用了支付宝的pythonSDK&#xff0c;请一定装最新版本的&#xff0c;支付宝官网文档不知道多久没更新了&#xff0c;之前的版本pip安装会报一些c库不存在的错误&#xff1b; pip install alipay-…

Nature:使用语义熵检测大语言模型中的幻觉

使用语义熵检测大语言模型中的幻觉 Detecting hallucinations in large language models using semantic entropy 论文阅读摘要研究目标论文图表概述总结关键解决方案语义熵计算:虚构内容检测: 双向蕴涵在大语言模型中的应用上下文的重要性蕴涵估计器 实验设计语义熵计算步骤结…

C++ 实现学生成绩管理系统

C 实现学生成绩管理系统 思路&#xff1a; 定义 Student 类&#xff0c;包含学生的基本信息和成绩。实现添加学生、删除学生、修改成绩、显示所有学生成绩和查找学生的功能。使用向量&#xff08;vector&#xff09;存储学生信息。 #include <iostream> #include <…

Docker Compose 安装以及命令的详细解析

Docker Compose 是一种用于定义和运行多容器Docker应用程序的工具。通过Compose&#xff0c;可以使用YAML文件来配置应用程序所需的所有服务&#xff0c;然后使用单个命令创建并启动所有服务。Docker Compose 提供了一种高效、简洁的方式来管理Docker容器和服务&#xff0c;使得…