安卓常用的控件

人不走空

                                                                      

      🌈个人主页:人不走空      

💖系列专栏:算法专题

⏰诗词歌赋:斯是陋室,惟吾德馨

 

在Android开发中,控件(也称为视图或控件组件)是构建用户界面的基本元素。它们用于显示信息和与用户进行交互。控件可以是简单的按钮或文本框,也可以是复杂的列表或图表。《第一行代码——Android》这本书涵盖了大量的控件知识,帮助开发者创建丰富和响应式的用户界面。下面,我们将详细讲解一些常用的Android控件及其用法。

目录

      🌈个人主页:人不走空      

💖系列专栏:算法专题

⏰诗词歌赋:斯是陋室,惟吾德馨

常用控件

1. TextView

属性

示例

2. EditText

属性

示例

3. Button

属性

示例

4. ImageView

属性

示例

5. CheckBox

属性

示例

6. RadioButton 和 RadioGroup

属性

示例

7. Switch

属性

示例

8. ProgressBar

属性

示例

9. SeekBar

属性

示例

10. ListView

使用步骤

示例

11. RecyclerView

使用步骤

示例

12. WebView

属性

示例

自定义控件

创建自定义控件的基本步骤

示例

总结

作者其他作品:


 

常用控件

1. TextView

TextView 是一个用于显示文本的控件。它可以用来显示短句、段落或者标题。

属性
  • android:text: 设置显示的文本。
  • android:textSize: 设置文本的大小。
  • android:textColor: 设置文本的颜色。
  • android:gravity: 设置文本的对齐方式(如居中、左对齐、右对齐等)。
示例
 

xml

复制代码

<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, Android!" android:textSize="18sp" android:textColor="#000000" android:gravity="center"/>

2. EditText

EditText 是一个可编辑的文本控件,用于接收用户输入。它通常用于表单、搜索框等需要用户输入文本的地方。

属性
  • android:hint: 设置提示文本,在用户输入前显示。
  • android:inputType: 设置输入类型(如文本、数字、密码等)。
  • android:text: 设置初始的输入文本。
示例
 

xml

复制代码

<EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Enter your name" android:inputType="text"/>

3. Button

Button 是一个点击按钮控件,用于触发特定的操作或事件。

属性
  • android:text: 设置按钮上的文本。
  • android:onClick: 设置按钮点击时触发的事件处理方法。
示例
 

xml

复制代码

<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Click Me" android:onClick="onButtonClick"/>

在Activity中实现点击事件:

 

kotlin

复制代码

fun onButtonClick(view: View) { // 处理按钮点击事件 }

4. ImageView

ImageView 用于显示图片。它支持加载和显示各种格式的图片资源。

属性
  • android:src: 设置显示的图片资源。
  • android:scaleType: 设置图片的缩放类型(如适应、裁剪、填充等)。
示例
 

xml

复制代码

<ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/sample_image" android:scaleType="centerCrop"/>

5. CheckBox

CheckBox 是一个复选框控件,允许用户在多项选择中进行选择。

属性
  • android:text: 设置复选框旁边的文本。
  • android:checked: 设置复选框的初始状态(是否选中)。
示例
 

xml

复制代码

<CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="I agree" android:checked="false"/>

6. RadioButton 和 RadioGroup

RadioButton 是单选按钮,通常与 RadioGroup 一起使用,形成一组选项,用户只能选择其中一个。

属性
  • android:text: 设置单选按钮旁边的文本。
  • android:checked: 设置单选按钮的初始状态。
示例
 

xml

复制代码

<RadioGroup android:layout_width="wrap_content" android:layout_height="wrap_content"> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Option 1"/> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Option 2"/> </RadioGroup>

7. Switch

Switch 是一个切换开关控件,用于在开和关之间切换状态。

属性
  • android:textOn: 设置开状态时的文本。
  • android:textOff: 设置关状态时的文本。
  • android:checked: 设置开关的初始状态。
示例
 

xml

复制代码

<Switch android:layout_width="wrap_content" android:layout_height="wrap_content" android:textOn="On" android:textOff="Off" android:checked="true"/>

8. ProgressBar

ProgressBar 是一个进度条控件,用于显示任务的进度。

属性
  • android:indeterminate: 设置进度条是否为不确定模式(即加载中,不显示具体进度)。
  • android:max: 设置进度条的最大值。
  • android:progress: 设置当前进度。
示例
 

xml

复制代码

<ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:indeterminate="true"/>

9. SeekBar

SeekBar 是一个滑动条控件,允许用户在指定范围内选择一个值。

属性
  • android:max: 设置滑动条的最大值。
  • android:progress: 设置当前选定的值。
示例
 

xml

复制代码

<SeekBar android:layout_width="match_parent" android:layout_height="wrap_content" android:max="100" android:progress="50"/>

10. ListView

ListView 是一个用于显示滚动列表的控件,每个列表项可以是一个自定义的视图。

使用步骤
  1. 定义布局: 创建一个包含 ListView 的布局。
  2. 准备数据: 准备一个数据源(如数组或列表)。
  3. 创建适配器: 使用适配器将数据绑定到 ListView
  4. 设置适配器: 将适配器设置到 ListView 上。
示例
 

xml

复制代码

<ListView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/listView"/>

Activity 中使用 ListView

 

kotlin

复制代码

val listView: ListView = findViewById(R.id.listView) val items = arrayOf("Item 1", "Item 2", "Item 3") val adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, items) listView.adapter = adapter

11. RecyclerView

RecyclerView 是一个更灵活和高效的列表控件,可以替代 ListView。它支持布局管理器和视图持有者(ViewHolder)模式。

使用步骤
  1. 定义布局: 创建一个包含 RecyclerView 的布局。
  2. 创建适配器: 实现 RecyclerView.Adapter,定义数据和视图的绑定逻辑。
  3. 设置布局管理器: 选择适当的布局管理器(如 LinearLayoutManagerGridLayoutManager)。
  4. 设置适配器: 将适配器设置到 RecyclerView 上。
示例
 

xml

复制代码

<androidx.recyclerview.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/recyclerView"/>

Activity 中使用 RecyclerView

 

kotlin

复制代码

val recyclerView: RecyclerView = findViewById(R.id.recyclerView) recyclerView.layoutManager = LinearLayoutManager(this) recyclerView.adapter = MyAdapter(myItemList)

12. WebView

WebView 是一个可以加载和显示网页内容的控件。它支持显示HTML内容、执行JavaScript代码,并与网页进行交互。

属性
  • android:layout_width: 设置WebView的宽度。
  • android:layout_height: 设置WebView的高度。
  • android:id: 设置WebView的唯一标识符。
示例
 

xml

复制代码

<WebView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/webView"/>

Activity 中加载网页内容:

 

kotlin

复制代码

val webView: WebView = findViewById(R.id.webView) webView.loadUrl("https://www.example.com")

自定义控件

除了使用内置控件,Android还允许开发者创建自定义控件,以满足特定的需求。自定义控件可以继承已有的控件类(如 ViewViewGroup),然后重写绘制方法和事件处理方法。

创建自定义控件的基本步骤

  1. 继承已有控件: 创建一个类,继承自 ViewViewGroup
  2. 重写绘制方法: 在 onDraw 方法中定义控件的绘制逻辑。
  3. 处理事件: 在 onTouchEvent 方法中处理用户的交互事件。
  4. 添加自定义属性: 在 res/values 文件夹中定义自定义属性,并在控件中解析这些属性。

示例

创建一个简单的自定义圆形控件:

 

kotlin

复制代码

class CircleView(context: Context, attrs: AttributeSet?) : View(context, attrs) { private val paint: Paint = Paint() override fun onDraw(canvas: Canvas?) { super.onDraw(canvas) canvas?.let { paint.color = Color.BLUE val radius = min(width, height) / 2.0f it.drawCircle(width / 2.0f, height / 2.0f, radius, paint) } } }

在布局文件中使用自定义控件:

 

xml

复制代码

<com.example.myapp.CircleView android:layout_width="100dp" android:layout_height="100dp"/>

总结

掌握Android中的各种控件及其用法是创建丰富用户界面的基础。通过合理地使用这些控件,可以开发出功能强大且用户体验良好的应用程序。希望这篇博客能够帮助你更好地理解和使用Android的控件,如果有任何问题或想法,欢迎在评论区讨论!


作者其他作品:

【Java】Spring循环依赖:原因与解决方法

OpenAI Sora来了,视频生成领域的GPT-4时代来了

[Java·算法·简单] LeetCode 14. 最长公共前缀 详细解读

【Java】深入理解Java中的static关键字

[Java·算法·简单] LeetCode 28. 找出字a符串中第一个匹配项的下标 详细解读

了解 Java 中的 AtomicInteger 类

算法题 — 整数转二进制,查找其中1的数量

深入理解MySQL事务特性:保证数据完整性与一致性

Java企业应用软件系统架构演变史 

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

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

相关文章

康姿百德磁性床垫好不好,效果怎么样靠谱吗

康姿百德典雅款床垫&#xff0c;打造舒适睡眠新体验 康姿百德床垫是打造舒适睡眠新体验的首选&#xff0c;其设计能够保护脊椎健康&#xff0c;舒展脊椎&#xff0c;让您享受一夜好眠。康姿百德床垫的面料选择也非常重要&#xff0c;其细腻亲肤的针织面料给您带来柔软舒适的触…

如何在操作使用ufw设置防火墙

UFW&#xff08;简单防火墙&#xff09;是用于管理iptables防火墙规则的用户友好型前端。它的主要目标是使iptables的管理更容易。 在学习Linux的时候大家一般都会关心命令&#xff0c;Posix API和桌面等&#xff0c;很少会去了解防护墙。其实除了一些网络安全厂商提供的付费防…

交互案例:5大经典交互效果

文件格式&#xff1a;.rp&#xff08;请与班主任联系获取原型文档&#xff09; 文件名称&#xff1a;Axure交互案例&#xff1a;5大经典交互实现 文件大小&#xff1a;78.5 MB 文档内容介绍 五大经典交互包括&#xff1a; 图片手风琴 图片悬浮放大 详细说明切换 图片全屏查…

上位机GUI 第三弹

&#x1f60a; &#x1f60a; &#x1f60a; 从协议层面讲&#xff0c;地质单元相当重要&#xff0c;调试模式,我只能义命令发送的索引码作为,每个设备的区分方式,调试的情况&#xff0c;不在设备上设置任何东西&#xff0c;开机访问地址和端口就能用 因为懒&#xff0c;直接将…

【代码随想录】【算法训练营】【第55天】 [42]接雨水 [84]柱状图中最大的矩形

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 LeetCode。 day 55&#xff0c;又是一个周一&#xff0c;不能再坚持~ 题目详情 [42] 接雨水 题目描述 42 接雨水 解题思路 前提&#xff1a;雨水形成的情况是凹的, 需要前中后3个元素&#xff0c;计算该元…

专业的TPM管理咨询公司有哪些特点?

专业的TPM管理咨询公司&#xff0c;作为现代企业管理和设备维护的重要合作伙伴&#xff0c;其特点不仅体现在技术能力和服务质量上&#xff0c;更在于其独特的经营理念和方法论。以下是专业TPM管理咨询公司所具备的显著特点&#xff1a; 一、全面的技术实力与深厚的行业经验 专…

word 转pdf 中图片不被压缩的方法

word 转pdf 中图片不被压缩的方法 法1&#xff1a; 调节word 选项中的图片格式为不压缩、高保真 法2&#xff1a; 1: word 中的图片尽可能使用高的分辨率&#xff0c;图片存为pnd或者 tif 格式&#xff08;最高清&#xff09; 2: 转化为pdf使用打印机器&#xff0c;参数如下…

分子AI预测赛笔记

#AI夏令营 #Datawhale #夏令营 Taks1 跑通baseline 根据task1跑通baseline 注册账号 直接注册或登录百度账号&#xff0c;etc fork 项目 零基础入门 Ai 数据挖掘竞赛-速通 Baseline - 飞桨AI Studio星河社区 启动项目 选择运行环境&#xff0c;并点击确定&#xff0c;没…

台灯学生用哪个牌子最好?学生用台灯品牌排行榜分析

台灯学生用哪个牌子最好&#xff1f;护眼台灯在近年来成为家长和长时间使用电子设备人群关注的家电/学生产品。对于家中有孩子或经常面对电子屏幕的人士来说&#xff0c;很多人可能已经对这类产品有所了解并进行了购买。然而&#xff0c;部分家长对护眼台灯的认识还不够深入&am…

FFT 简单基础(matlab

使用 fs 进行采样&#xff0c;进行 N点FFT 选择显示0~N/21点的幅值 横坐标对应频率计算公式&#xff1a; fs * n / N 举个梨子&#xff1a; 频率2kHz采样1s&#xff0c;得到2000个点的序列y(n) 对序列y(n)做4096点的FFT 幅值响应对应的横坐标频率…

机器人控制系列教程之Stewart平台简介和运动学分析

Stewart平台简介及应用场景 六自由度 Stewart 并联机器人结构简图如下图所示&#xff0c;主要有一个固定平台和一个移动平台以及六个可伸缩的推杆组成&#xff0c;通常情况下&#xff0c;固定平台与底座连接&#xff0c;移动平台在空间具有六个自由度&#xff0c;通过六个推杆…

价格很实惠,希喂、爱立方、生生不息主食冻干抗得住实测吗?

在挑选主食冻干时&#xff0c;许多宠物主人都会感到头疼。尽管主食冻干相较于普通猫粮具有诸多优势&#xff0c;但其价格也相对高昂。这导致许多宠物主人担心高价购买的主食冻干可能营养价值并不理想。然而&#xff0c;在选择时&#xff0c;我们还需要考虑其他重要因素&#xf…

Spring MVC 中 使用 RESTFul 实现用户管理系统

1. Spring MVC 中 使用 RESTFul 实现用户管理系统 文章目录 1. Spring MVC 中 使用 RESTFul 实现用户管理系统2. 静态页面准备2.1 user.css2.2 user_index.html2.3 user_list.html2.4 user_add.html2.5 user_edit.html 3. SpringMVC环境搭建3.1 创建module&#xff1a;usermgt3…

tapd 与国内外主流的8大项目管理软件大对比

对比Tapd与8大项目管理工具&#xff1a;PingCode、Worktile、Redmine、Teambition、广联达、Jira、禅道、飞书。 Tapd 是腾讯推出的一款敏捷开发管理工具&#xff0c;特别适合那些需要高效协作和快速迭代的敏捷开发团队。它支持多种敏捷方法论&#xff0c;包括Scrum和Kanban&am…

数学建模------Matlab数据可视化

目录 1.plot函数 &#xff08;1&#xff09;函数介绍 &#xff08;2&#xff09;参数介绍 &#xff08;3&#xff09;图形美化 &#xff08;4&#xff09;背景更改 &#xff08;5&#xff09;多组绘制 &#xff08;6&#xff09;图形叠加 &#xff08;7&#xff09;添加…

Elasticsearch备份数据到本地,并导入到新的服务 es 服务中

文章目录 使用elasticsearch-dump工具备份安装node.js(二进制安装)解压设置环境变量安装elasticsearch-dump docker安装使用ES备份文件到本地 使用elasticsearch-dump工具备份 这个工具备份时间比较长 安装node.js(二进制安装) wget https://nodejs.org/dist/v16.18.0/node-…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 英文单词联想(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 https://app5938.acapp.acwing.com.cn/contest/2/problem/OD…

如何利用小程序容器技术搭建小程序生态?

小程序&#xff0c;作为现代移动互联网生态中的重要基础设施&#xff0c;正以其独特的创新性和便捷性展现出勃勃生机。截至2021年&#xff0c;全网小程序的数量已经突破了700万&#xff0c;其中微信小程序的开发者达到了300万之多。这一数字不仅代表了小程序在技术层面的成熟度…

7.4总结

今天写了几道题目 最近&#xff0c;一年级学生马克西姆学习了科拉兹猜想&#xff0c;但他在讲课时没有太注意&#xff0c;所以他认为猜想中提到了以下过程&#xff1a; 有一个变量 $$$x$$$ 和一个常数 $$$y$$$ 。下面的操作要执行 $$$k$$$ 次&#xff1a; - 将 $$$x$$$ 增加…

Studying-代码随想录训练营day29| 134. 加油站、135. 分发糖果、860.柠檬水找零、406.根据身高重建队列

第29天&#xff0c;贪心part03&#xff0c;快过半了(ง •_•)ง&#x1f4aa;&#xff0c;编程语言&#xff1a;C 目录 134.加油站 135. 分发糖果 860.柠檬水找零 406.根据身高重建队列 134.加油站 文档讲解&#xff1a;代码随想录加油站 视频讲解&#xff1a;手撕加油站…