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

目录

任务目标

使用TextView、Button、CheckBox等实现一个选择题界面,界面如图1所示。

图1 选择题界面效果图

任务分析

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

图2 选择题界面分解

任务实施

1.新建工程

新建工程一个名为Quiz的应用程序,选择"Empty Views Activity",指定包名为cn.edu.jssvc.quiz。

2.定义字符串

打开res/values/string.xml,定义本工程界面上需要用到的字符串,如图3所示,代码如下。

xml 复制代码
<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选择题界面的设计------线性布局实操

相关推荐
温辉_xh14 分钟前
uiautomator案例
android
工业甲酰苯胺1 小时前
MySQL 主从复制之多线程复制
android·mysql·adb
少说多做3432 小时前
Android 不同情况下使用 runOnUiThread
android·java
Estar.Lee3 小时前
时间操作[计算时间差]免费API接口教程
android·网络·后端·网络协议·tcp/ip
找藉口是失败者的习惯4 小时前
从传统到未来:Android XML布局 与 Jetpack Compose的全面对比
android·xml
Jinkey5 小时前
FlutterBasic - GetBuilder、Obx、GetX<Controller>、GetxController 有啥区别
android·flutter·ios
大白要努力!7 小时前
Android opencv使用Core.hconcat 进行图像拼接
android·opencv
天空中的野鸟7 小时前
Android音频采集
android·音视频
小白也想学C9 小时前
Android 功耗分析(底层篇)
android·功耗
曙曙学编程9 小时前
初级数据结构——树
android·java·数据结构