Android开发之Button控件以及Button事件处理
一.控件基础属性
由于button控件是继承的TextView控件,所以控件基本属性与textView基本相同,如果对textView不明白的可以看我的上一篇博客
https://blog.youkuaiyun.com/Lmz_0314/article/details/117076218

这里主要介绍的是StateListDrawable控件的属性

0.使用stateListDrawable前提
更改value中themes.xml的属性

1.创建一个button按钮

效果:

2.实现按下按钮会出现不同展现方式的效果
按下按钮后并没有任何反应,想要实现按下去后变颜色的效果
先在res的drawable文件夹中创建一个新的selector文件,这里命名为btn_selector
(创建方法如下:

先导入测试的图片

导入了自带的两张图片

在btn_selector中输入以下代码

第一个控件中android:state_pressed=”true”表示按下时显示的图片
第二个控件中为默认时显示的图片
要使用该xml,在activity_main.xml中的backgroud属性中使用drawable中的btn_selector.xml

测试

持续点击时

3.实现按下后会有不同颜色的效果
设置一个颜色选择器
在res文件夹中创建color文件夹

在color中创建btn_color_selector.xml文件

在button中调用

测试:

持续点击时

(此处如果没有颜色改变,记得完成第一步。)
4.foreground属性及三层结构说明


前剪色最上面一层
文字在中间一层
背景在最后一层
人眼先看到前剪色,会覆盖下面的所有东西,foreground和background其他设置基本一样。也可以设置选择器。
二、Button事件处理
1.Button事件处理分类
1.点击事件
2.长按事件
3.触摸事件
2.事件处理函数
1.点击事件函数

2。长按事件

3.触摸事件

3.进行函数测试
设置一个检测函数


4.关于OnTouch的说明


可以看到使用getAction()获取OnTouch编号后,有三种结果
0为放上去,2为在上面移动,1为松手
5.关于返回值True和False的说明
按下按钮时,
先是OnTouch,如果返回为true,不会传给OnClick和OnLongClick,
再是OnLongClick,如果返回为true,不会传给OnClick
不会传指不会调用下一层的函数
6.时间函数在xml中实现
还可以直接在xml中实现,增加属性onclick


按住alt+enter

创建出新函数
自动创建方法

注释掉之前创建的点击事件函数,完善函数内容

进行测试

发现有OnClick出现
总结
之前学过后端开发,觉得button的事件处理十分重要,所以这部分需要好好掌握。
如果有不懂的可以提问啦。
参考的视频是享学的移动开发教程。

本文详细介绍了Android开发中Button的基础属性和事件处理。通过实例展示了如何使用StateListDrawable创建按下按钮时的颜色变化效果,以及如何设置前景色。同时,讲解了Button的点击、长按和触摸事件,包括对应的处理函数、返回值意义以及在XML中实现事件的方法。文章还强调了理解和掌握这些基础知识对于Android开发者的重要性。
3225





