IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 2021SC@SDUSC移动互联网项目分析——入门Hello World(二) -> 正文阅读

[移动开发]2021SC@SDUSC移动互联网项目分析——入门Hello World(二)

2021SC@SDUSC

目录

“入门Hello World”UI控件简介

?TextView

背景和下划线

长文本单行显示和划线

文字与icon

?

阴影

链接

?

TextViewActivity.java

Button

不可用按钮

可按压按钮/

ButtonActivity.java

EditText

Text类型

Number类型

Password类型

EditText设置监听

RadioButton

选项改变监听

提交选项监听

总结


上篇文章分析了案例app入门Hello World总页面和布局部分。这篇博客主要分析app中的UI控件部分。

“入门Hello World”UI控件简介

主要介绍Android中的UI控件,如文本、按钮、复选框等部件该如何使用。点击主页面按钮跳转到相应部件的案例界面。

主页面:

由于各个UI控件属性大致相同,因此在TextView部分中会详细介绍UI控件属性。在后续的控件中属性不再赘述,主要介绍监听等。

?TextView

此控件用于向用户显示文本。

?页面为LinearLayout(线性布局)。因此最外层是<LinearLayout></LinearLayout>标签。里层是六个<TextView></TextView>分别展示TextView的背景和下划线、长文本单行显示、文字与icon、阴影、链接、跑马灯六个效果。

背景和下划线

在TextView中通过android:background设置背景颜色;

通过android:text、android:textColor、android:textSize、android:textStyle来设置text的内容、颜色、字体大小、字体风格;

通过android:gravity来指定文字的对齐方式,可选值有 top、bottom、left、right、center 等。

下划线需在activity中设置,所以在TextViewActivity.java中通过TextView的id获取到此元素。

首先Html.fromHtml(String str)传入参数"<u>文本</u>"(表示有下划线的"文本"),再将Html.fromHtml(String str)的返回值作为参数传入setText()。这样就可以设置下划线。

长文本单行显示和划线

在TextView中通过android:maxLines = "1"设置文本最大显示行数为1,即为单行显示;

通过android:ellipsize="end"设置文本超出时末尾显示省略号【”start”省略号显示在开头;”end”省略号显示在结尾;”middle”省略号显示在中间;”marquee” 以[跑马灯]的方式显示(动画横向移动)】。

划线需在activity中设置,所以在TextViewActivity.java中通过TextView的id获取到此元素。

首先调用getPaint().setFlags()可以设置划线,下划线传入参数Paint. UNDERLINE_TEXT_FLAG,中划线传入参数Paint. STRIKE_THRU_TEXT_FLAG。然后再调用getPaint().setAntiAlias(boolean bool);传入参数true表示抗锯齿。

文字与icon

TextView通过android:drawableLeft在文本左边添加图片(android:drawableRight--文本右边添加图片、android:drawableTop--文本上边添加图片、android:drawableBottom--文本下边添加图片);

通过android:drawablePadding设置图片的内边距值。

阴影

TextView通过android:shadowColor设置阴影颜色;

通过android:shadowDx设置阴影的横坐标偏移;

通过android:shadowDy设置阴影的纵坐标偏移;

通过android:shadowRadius设置阴影圆角;

链接

TextView通过android:text设置文本,因为是链接,所以直接写网址即可;

通过android:autoLink设置自动链接识别方式(值web为匹配Web网址;值phone为匹配电话号码;值email为匹配email网址;值all为匹配所有)

TextViewActivity.java

首先调用onCreate()方法,该activity进入"已创建"状态;

再调用setContentView(R.layout.activity_text_view)将activity_text_view.xml设置为此activity的布局文件。

Button

用户可以按下或单击以执行操作的按钮。

页面使用RelativeLayout(相对布局),因此最外层为<RelativeLayout></RelativeLayout>标签,里层是三个<Button></Button>展示三个不同的按钮。

"普通按钮"展示了普通的按钮背景、文本等设置,不再赘述。着重讲一下"不可用按钮"和"按压效果"按钮。

不可用按钮

主要在于设置按钮的不可用。在ButtonActivity.java通过按钮id中获取到此按钮,然后再通过Button.setEnable(boolean bool)设置按钮是否可用(true为不可用,false为可用)

可按压按钮/

在Button标签中通过android:onClick设置按钮点击事件,showToast为ButtonActivity.java中的函数。

showToast()函数中使用Toast.makeText().show()方法。

Toast是View 视图,快速的为用户显示少量的信息。 Toast 在应用程序上浮动显示信息给用户,它永远不会获得焦点,不影响用户的输入等操作,主要用于 一些帮助 / 提示。

Toast.makeText(...,显示内容,显示长度).show()能够弹出提示用户的信息。

因此调用showToast()会向用户展示"按钮被点击"的信息。

ButtonActivity.java

与上文TextViewActivity.java一样,后文不再赘述。

EditText

EditText是TextView的预定义子类,其中包含丰富的编辑功能。

该页面采用RelativeLayout(相对布局),因此最外层为<RelativeLayout></RelativeLayout>标签,内层为五个子元素EditText,展示了text、number、password三种输入格式还展示了对EditText的监听功能。

EditText通过android:hint设置此输入框的提示文字

Text类型

EditText通过android:inputType设置输入文本类型,默认值为"text"。此页面中“用户名”与“自我介绍”都为text类型。不同的是"用户名"部分添加了图片且行数为1行(与TextView加图片类似 不再赘述),"自我介绍"部分无图片且行数为4行。

"用户名"部分:

通过android:textColorHint设置输入框提示文字的颜色;

通过android:singleLine="true"设置输入框为单行。

"自我介绍"部分:

通过android:maxLines="4"设置输入框为4行。

Number类型

EditText通过android:inputType="number"将输入框设为数字类型,点击输入就会弹出数字键盘;

通过android:selectAllOnFocus = 'true'使得此输入框获得焦点就选中输入框内全部内容。便于变化号码的复制粘贴

Password类型

EditText通过android:inputType="textPassword"将输入框设为密码类型,输入内容都变为"*"不可见。

EditText设置监听

"输入框监听"输入内容结束后页面会弹出输入框的信息。

首先通过元素id属性获取到最后一个输入框

然后再调用EditText.addTextChangedListener()监听用户输入状态,可以实时获取用户所输入数据;

传入一个new TextWatcher()作为函数的参数,实现接口TextWatcher中的抽象方法。此程序主要实现onTextChanged()方法,当输入框内容改变时就用Toast.makeText(显示内容,显示长度).show()向用户展示输入框此时的内容。

RadioButton

RadioButton有两种状态:选中或未选中,这允许用户从一组中选择一个选项(单选)。

此页面为LinearLayout(线性布局),因此在最外层元素为<LinearLayout></LinearLayout>。有两个单选框组,所以子元素中有两组<RadioGroup></RadioGroup>。RadioGroup元素中要添加各自的<RadioButton></RadioButton>。

选项改变监听

第一组RadioGroup后,有一个TextView显示选项结果。

在RadioButtonActivty.java中通过元素属性id获得第一个RadioGroup和用于显示选项结果的TextView。

RadioGroupListener继承RadioGroup.OnCheckedChangeListener接口,为RadioGroup设置事件监听器。

实现接口onCheckedChanged()方法,通过if...else判断点击的是哪个单选框,当点击事件发生的话TextView就调用setText()方法将文本设置为选项结果。

提交选项监听

第二组RadioGroup后,有个Button可提交选项结果。

在RadioButtonActivty.java中通过元素属性id获得第二个RadioGroup和用于提交选项结果的Button。

为Button设置点击事件监听

再用一个for循环遍历第二个RadioGroup中的每个RadioButton,调用每个RadioButton的isChecked()检查他们是否被选上

若选上则用Toast.makeText(...,显示内容,显示长度).show()给用户展示选项结果(调用RadioButton的getText()可获得文本内容),并且break终止循环。

若未选上则继续遍历。

不足是在未选择任一个RadioButton的情况下点击按钮,没有提示消息告诉用户此时未选内容。

总结

此次分析学习到了更多关于Android UI控件属性与监听的知识。此app设计较为合理,运用简单的案例帮助读者学习UI控件属性与加监听的知识。但美中不足的是:一、在TextView跑马灯板块中未能展示跑马灯的效果;二、有些应用有些许逻辑上的问题。例如在RadioButton提交选项监听板块上,在未选择任一个RadioButton的情况下点击按钮,没有提示消息告诉用户此时未选内容。

不过整体上项目界面美观,用简洁的部分教学较多的内容。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-10-17 12:06:28  更:2021-10-17 12:07:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:07:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码