| |
|
开发:
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 目录 上篇文章分析了案例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表示抗锯齿。 文字与iconTextView通过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一样,后文不再赘述。 EditTextEditText是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()向用户展示输入框此时的内容。 RadioButtonRadioButton有两种状态:选中或未选中,这允许用户从一组中选择一个选项(单选)。 此页面为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 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |