Android 基本控件

news2024/9/26 3:30:43

一、TextView

TextView是一个文本框
在这里插入图片描述
在这里插入图片描述
1.id

id是这个textview的唯一id 格式是@+id/(自定义ID) 图中Id是tv_one
每一个TextView都是一个对象
在这里插入图片描述
可以使用TextView的ID通过findViewById()方法获取到这个View对象
setText是设置这个TextView的文本,此处设置的文本会覆盖掉xml设置的文本

2.layout_width、layout_height
组件的高度和宽度 其中wrap_content是自适应高度宽度 match_parent是充满整个父组件
单位用dp
3.textColor
字体颜色 共有8位 前两位是透明度 后面的以两位为一组分别对应R、G、B
4.textStyle
字体风格,三个可选值: normal(无效果)、bold(加粗)、italic(斜体)
5.textSize
字体大小 单位是sp
6.background
背景颜色 可以用color(设置同textColor) 也可以用图片
7.gravity
设置控件中内容的对齐方向,TextView是文字,ImageView中是图片等
8.singleLine
在一行显示内容

通常情况下,TextView的text不写在这里,而是写在strings.xml里
在这里插入图片描述
strings.xml
在这里插入图片描述
activity_main.xml
在这里插入图片描述

带阴影的TextView
1.shadowColor:设置阴影颜色,要和shadowRadius一起使用
2.shadowRadius:设置阴影的模糊程度,设置为0.1就编程字体颜色了,建议3.0
3.shadowDx:设置阴影水平方向的便宜,就是水平方向阴影开始的横坐标位置
4.shadowDy:设置阴影在竖直方向的偏移,就是竖直方向阴影开始的纵坐标位置

在这里插入图片描述

实现跑马灯效果的TextView
singleLine:内容单行显示
focusable:是否可以获取焦点
focusableInTouchMode:用于控制视图在触摸模式下是否可以聚焦
ellipsize:在哪里省略文本 marquee是跑马灯形式
marqueeRepeatLimit:字幕动画重复的次数

在这里插入图片描述
此时还是无法达成跑马灯效果 是因为模拟的手机无法获取焦点 可以设置clickable为true(可以点击)

在这里插入图片描述
点击后可以有跑马灯形式

但此时要点击才有跑马灯形式 为了让他自动跑马灯我们可以采取自定义TextView的方式(方式二)
自定义类MyTextView继承TextView
在这里插入图片描述
使用自定义的MyTextView标签
在这里插入图片描述
方式三 使用RequestFocus标签
在TextView间加入requestFocus标签
在这里插入图片描述

二、Button

Button继承自TextView 所以TextView有的Button基本都有
在这里插入图片描述

此时发现background不生效 需要修改value中的themes.xml
在这里插入图片描述
在箭头出加上 .Bridge
在这里插入图片描述
修改后可以正常显示:
在这里插入图片描述
StateListDrawalbe
StatelistDrawable是Drawable资源的一种,可以根据不同的状态,设置不同的图片效果,关键节点我们只需要将Button的background属性设置为该drawable资源即可轻松实现,按下按钮时不同的按钮颜色或者背景
1、drawable:引用的Drawable位图
2.state_focused:是否获得焦点
3.state_pressed:控件是否被按下
4.state_enabled:控件是否可用
5.state_selected:控件是否被选择,针对有滚轮的情况
6.state_checked:控件是否被勾选
7.state_checkable:控件是否被勾选 eg:checkbox
8.state_window_focused:是否获得窗口焦点
9.state_active:控件是否处于活动状态,eg:slidingTab
10.state_single:控件包含多个子控件时,确定是否只显示一个子控件
11.state_first:控件包含多个子控件时,确定第一个子控件是否处于显示状态
12.state_middle:控件包含多个子控件时,确定中间一个子控件是否处于显示状态
13.state_last:控件包含多个子控件时,确定最后一个子控件是否处于显示状态

在drawable中创建btn_selector.xml:
在这里插入图片描述
在active_main.xml中引用drawable:
在这里插入图片描述
不点击为图片123 点击变图片10k
点击:
在这里插入图片描述
也可以用相同的方式创建color:
在这里插入图片描述
在active_main.xml中引用:
在这里插入图片描述

Button事件处理

在这里插入图片描述
button事件有三种 点击 长按 触摸 以上三个是触发三个事件后的回调函数 其中触摸事件分为三种:ACTION_DOWN 按下 ACTION_UP 弹起 ACTION_MOVE 移动分别对应0 1 2

长按不动然后松手:
在这里插入图片描述

三、EditText

hint:输入提示
textColorHint:输入提示文字的颜色
InputType:输入类型
drawableXxxx:在输入框的指定方位添加图片
drawablePadding:设置图片与输入内容的间距
paddingXxxx:设置内容与边框的间距
background:背景色
在这里插入图片描述
通过按钮的点击事件获取EditText内容:
MainActivity.java:
在这里插入图片描述
activity_main.xml:
在这里插入图片描述
在这里插入图片描述

点击按钮后可以看到日志

四、ImageView

src:设置图片资源
scaleType:设置图片缩放类型
maxHeight:最大高度
maxWidth:最大宽度
adjustViewBounds:调整View的界限
在这里插入图片描述
缩放类型:
fitStart:保持宽高比缩放图片,直到较长的边与Image的边长相等,缩放完成后将图片放在ImageView的左上角
fitCenter:默认值,同上,缩放后放在中间
fitEnd:同上,缩放后放于右下角
fitXY:对图像的横纵方向进行独立缩放,使得该图片完全适应ImageView,但是图片的宽高比可能会发生改变
center:保持原图的大小,显示在ImageView的中心,当原图的size大于ImageView的size 超出部分裁剪
centerCrop:保持宽高比缩放图片,直到完全覆盖ImageView,可能会出现图片的显示不完全
centerInside:保持宽高比缩放图片,直到ImageView能够完全显示图片
matrix:不改变原图大小,从ImageView的左上角开始绘制原图,超出部分裁剪

五、ProgressBar

max:进度条最大值
progress:进度条已完成进度值
indeterminate:若为true,则进度条不精确显示进度

六、Notification

Android使用notification实现消息提醒,提供通知栏和通知抽屉查看通知和通知详情,Android的notification机制应用非常广泛,是指在应用程序之外显示的消息,布局由系统模板决定,开发者只需要定义模板中各部分的内容,通知详情就会在点开后展开视图显示设置的内容。

 基本步骤:1.使用getSystemService()获取NotificationManager管理类。

                      2.使用notification类创建通知对象,设置标题、内容、图片等样式。

                      3.调用NotificationManager的notify()调出通知栏,显示通知。

                      4.Android8.0及以上版本,需要创建通知通道对通知进行管理。

原文链接:https://blog.csdn.net/weixin_51872136/article/details/123723369

在这里插入图片描述
在这里插入图片描述
通知重要程度:
IMPORTANCE_NONE 关闭通知
IMPORTANCE_MIN:开启通知,不会弹出,没提示音,状态栏无显示
IMPORTANCE_LOW:开启通知,不会弹出,不发出提示音,状态栏显示
IMPORTANCE_DEFAULT:开启通知,不弹出,发提示音,状态栏显示
IMPORTANCE_HIGH:开启通知 弹出 发提示音 状态栏显示

常用方法:
setContentTitle(String string) 设置标题
setContentText(String string) 设置文本内容
setSmallIcon(int icon) 设置通知的大图标
setLargeIcon(Bitmap icon ) 设置通知的大图标
setColor(int argb) 设置小图标颜色
setContentIntent(PendingIntent intent) 设置点击通知后的跳转意图
setAutoCancel(boolean boolean) 设置点击通知后自动清除通知
setWhen(long when) 设置通知被创建的时间

七、ToolBar

工具导航栏
在这里插入图片描述
在这里插入图片描述

八、AlertDialog

AlertDialog可以在当前的界面上显示一个对话框,这个对话框是置顶于所有界面元素之上的,能够屏蔽掉其他控件的交互能力,因此AlertDialog一般是用于提示一些非常重要的内容或者警告信息。
在这里插入图片描述
在这里插入图片描述
Builder.setIcon(int iconId);添加ICON
Builder.setTitle(CharSequence title); 添加标题
Builder.setMessage(CharSequence message); 添加消息
Builder.setView(View view) 设置自定义布局
Builder.create() 创建Dialog
Builder.show() 显示对话框
setPositiveButton 确定按钮
setNegativeButton 取消按钮
setNetralButton 中间按钮
在这里插入图片描述

九、PopupWindow

setContentView(View contentView) 设置PopupWindow显示的View
showAsDropDown(View anchor,int xoff,int yoff) 相对某个控件的位置
setFocusable(boolean focusable) 设置是否获取焦点
setBackgroundDrawable(drawable background) 设置背景
dimiss() 关闭弹窗
setAnimationStyle(int animationStyle) 设置加载动画
setTouchable(boolean touchable)设置触摸使能
setOutsideTouchable(boolean touchable) 设置PopupWindow外面的触摸使能

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

TiDB丨 从MySQL迁移至TiDB的常见问题及解决方案

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、前言二、GC设置过长的问题为什么在MySQL里可设置,保留更多的历史数据,而TiDB不行?TiDB中历史版本过多问题及排查方法二、SQL调…

Python解题 - CSDN周赛第20期 - 逆波兰 / 后缀表达式

不知不觉已经参加了19场比赛了,由于参赛次数多,排名竟然稀里糊涂地上升到第一,受宠若惊,赶紧截图保存纪念一下。 正好又赶上元旦,新的2023年,希望CSDN的周赛能越办越好,尽量少出bug,…

P1047 [NOIP2005 普及组] 校门外的树

题目 [NOIP2005 普及组] 校门外的树 题目描述 某校大门外长度为 lll 的马路上有一排树,每两棵相邻的树之间的间隔都是 111 米。我们可以把马路看成一个数轴,马路的一端在数轴 000 的位置,另一端在 lll 的位置;数轴上的每个整数…

批量化工程项目的实施过程

最近的批量化项目存在方案设计上的问题,导致很严重的后果。 1、各个相关方都需要投入较大的精力来处理此事; 2、投入的时间、金钱及人员等均在其中; 3、方案需要进行重新的验证,总体项目工程的周期进一步被压缩; 4…

21-InnoDB引擎底层存储和缓存原理

到目前为止,MySQL对于我们来说还是一个黑盒,我们只负责使用客户端发送请求并等待服务器返回结果,表中的数据到底存到了哪里?以什么格式存放的?MySQL是以什么方式来访问的这些数据?这些问题我们统统不知道。…

【C++ Primer】阅读笔记(1):基础

目录 简介类型选择(经验准则)当一个算术表达式既有int,又有无符号数时,int会转换为无符号数对象初始化与赋值的区别声明与定义全局变量与局部变量示例引用指针与引用的区别不可以将int变量直接赋值给指针,即便这个int变量是0const对象必须初始化参考结语简介 Hello! 非常…

pdf转换器电脑版免费,好用的办公操作软件集合

工作中太多的文件格式需要我们进行操作了,各种各样的文件可以打开的软件经常是不同的。就像是PDF文件,如果没有在电脑安装对应的可以打开的软件,可能我们就没办法直接查看文件内容。而且这种情况也不是偶然出现,可能还会随着我们文…

信息系统项目管理师的论文如何提高?

简单点来说吧!也适合软考小白来看! 信息系统项目管理师论文要写几道题?没有参加过信息系统项目管理师考试的考生对于论文科目考试不是很了解,那么信息系统项目管理师论文到底要写几道题呢? 软考高级信息系统项目管理…

振弦采集模块辅助功能寄存器之低功耗休眠

振弦采集模块辅助功能寄存器之低功耗休眠 在收到休眠指令后,完成当次测量后立即进入低功耗的休眠模式,休眠模式下, VDD 电流可降至 1mA 左右,当收到数字接口任意数据后自动唤醒。此功能会使硬件看门狗失效,存在模块意…

关于项目型和职能型组织结构的思考和笔记

1、区别项目型还是职能型,最根本的要点在于,沟通渠道必须通过谁(负责人是谁,是项目经理还是职能经理,谁有沟通渠道控制权); 2、沟通渠道的控制权取决于利益的优先权(例如&#xff1…

前端常用处理时间方法

项目上用到很多时间格式,写了一些处理时间的方法,也可以用第三方库,下面是我自己项目封装的一下方法,命名瞎写的,有些方法是关联的,很多没有怎么完善,记录一下,兼容ios时间问题,时间太赶没有完善,将就用下,人和程序有一个人跑就行 获取当前时间戳 getTodayTomorrowTtem export…

求树的直径(史上最详细,匠心之作,限时免费看)

一,题目SPOJ PT07Z, Longest path in a tree一.定义树上任意两节点之间最长的简单路径即为树的「直径」。二,解法做法 1. 两次 DFS过程:首先从任意节点y, 开始进行第一次 DFS,到达距离其最远的节点,记为 z,然后再从 z开…

ARM S5PV210 中断体系与外部中断实战

一、中断体系介绍 1、什么是中断 中断的发明是用来解决宏观上的并行需要的。宏观就是从整体上来看,多件事情都完成了。微观上的并行,就是指的真正的并行,就是精确到每一秒甚至每一刻,多个事情都是在同时进行的。宏观上面的并行并…

OQC与Cyxtera将量子计算应用于数据中心

牛津量子电路(OQC)正与云服务公司Cyxtera合作,在数据中心安装量子计算机,方便用户在其本地数据集上运行量子算法。 在葡萄牙里本举行的网络峰会上,牛津量子电路(OQC)首席执行官ILana Wisby谈到了…

【力扣经典题目】环形链表,判断链表是否有环

题目描述: 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链…

【Unity】新手初学Animation实现人物移动

【Unity】新手初学Animation实现人物移动 需求:开发影院系统,希望加入Avatar人物,在其中行走和坐下 环境:Unity2021.3 新手初学Animation教程:BV1BW41187fL Avatar人物模型资源:学长网盘链接分享 Animation…

【电动汽车充电站有序充电调度的分散式优化】基于蒙特卡诺和拉格朗日的电动汽车优化调度(分时电价调度)(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

实习------SpringMVC 框架学习

Spring MVC 是什么 (了解)Spring MVC(全称 Spring Web MVC)是 Spring 框架提供的一款基于 MVC 模式的轻量级 Web 开发框架,是 Spring 为表示层(UI)开发提供的一整套完备的解决方案。注&#xff…

《Linux运维总结:使用旧版redis-shake2.x进行redis集群间的数据同步【方案二】》

一、redis-shake简介 redis-shake是阿里云开源的用于Redis数据迁移和过滤的工具。 Github参考:redis-shake简介 1.1、迁移工具对比 redis-migrate-tool redis-migrate-tool是唯品会开源的一款Redis异构集群之间的数据实时迁移工具,不过已经有两年没有更…

如何对【javaSE】语法阶段复习

下面是我对学习java阶段的总复习,我愿称之为【复习宝典】 如果你对java的部分语法阶段的知识有所困惑,进来看看吧! 文章目录 目录 文章目录 一、初始java 1.1java 的由来 1.2JDK安装 1.3main方法的介绍 二、数据类型和变量 2.1数据类型 三、运…