Android开发之Button控件以及Button事件处理

Android开发之Button控件以及Button事件处理

  • 一.控件基础属性
    • 0.使用stateListDrawable前提
    • 1.创建一个button按钮
    • 2.实现按下按钮会出现不同展现方式的效果
    • 3.实现按下后会有不同颜色的效果
    • 4.foreground属性及三层结构说明
  • 二、Button事件处理
    • 1.Button事件处理分类
    • 2.事件处理函数
    • 3.进行函数测试
    • 4.关于OnTouch的说明
    • 5.关于返回值True和False的说明
    • 6.时间函数在xml中实现
  • 总结


一.控件基础属性

由于button控件是继承的TextView控件,所以控件基本属性与textView基本相同,如果对textView不明白的可以看我的上一篇博客
https://blog.csdn.net/Lmz_0314/article/details/117076218
在这里插入图片描述
这里主要介绍的是StateListDrawable控件的属性

Android开发之Button控件以及Button事件处理_第1张图片

0.使用stateListDrawable前提

更改value中themes.xml的属性
在这里插入图片描述

1.创建一个button按钮

Android开发之Button控件以及Button事件处理_第2张图片
效果:
Android开发之Button控件以及Button事件处理_第3张图片

2.实现按下按钮会出现不同展现方式的效果

按下按钮后并没有任何反应,想要实现按下去后变颜色的效果
先在res的drawable文件夹中创建一个新的selector文件,这里命名为btn_selector
(创建方法如下:
Android开发之Button控件以及Button事件处理_第4张图片
先导入测试的图片
Android开发之Button控件以及Button事件处理_第5张图片
导入了自带的两张图片
在这里插入图片描述
在btn_selector中输入以下代码
在这里插入图片描述
第一个控件中android:state_pressed=”true”表示按下时显示的图片
第二个控件中为默认时显示的图片

要使用该xml,在activity_main.xml中的backgroud属性中使用drawable中的btn_selector.xml
Android开发之Button控件以及Button事件处理_第6张图片
测试
在这里插入图片描述
持续点击时
在这里插入图片描述

3.实现按下后会有不同颜色的效果

设置一个颜色选择器
在res文件夹中创建color文件夹
Android开发之Button控件以及Button事件处理_第7张图片
在color中创建btn_color_selector.xml文件
Android开发之Button控件以及Button事件处理_第8张图片
在button中调用
Android开发之Button控件以及Button事件处理_第9张图片
测试:
在这里插入图片描述
持续点击时
在这里插入图片描述

(此处如果没有颜色改变,记得完成第一步。)

4.foreground属性及三层结构说明

在这里插入图片描述
Android开发之Button控件以及Button事件处理_第10张图片
前剪色最上面一层
文字在中间一层
背景在最后一层
人眼先看到前剪色,会覆盖下面的所有东西,foreground和background其他设置基本一样。也可以设置选择器。

二、Button事件处理

1.Button事件处理分类

1.点击事件
2.长按事件
3.触摸事件

2.事件处理函数

1.点击事件函数
Android开发之Button控件以及Button事件处理_第11张图片
2。长按事件
Android开发之Button控件以及Button事件处理_第12张图片
3.触摸事件
Android开发之Button控件以及Button事件处理_第13张图片

3.进行函数测试

设置一个检测函数
Android开发之Button控件以及Button事件处理_第14张图片
Android开发之Button控件以及Button事件处理_第15张图片

4.关于OnTouch的说明

Android开发之Button控件以及Button事件处理_第16张图片
在这里插入图片描述
可以看到使用getAction()获取OnTouch编号后,有三种结果
0为放上去,2为在上面移动,1为松手

5.关于返回值True和False的说明

按下按钮时,
先是OnTouch,如果返回为true,不会传给OnClick和OnLongClick,
再是OnLongClick,如果返回为true,不会传给OnClick
不会传指不会调用下一层的函数

6.时间函数在xml中实现

还可以直接在xml中实现,增加属性onclick
Android开发之Button控件以及Button事件处理_第17张图片
在这里插入图片描述
按住alt+enter
Android开发之Button控件以及Button事件处理_第18张图片
创建出新函数
自动创建方法
在这里插入图片描述
注释掉之前创建的点击事件函数,完善函数内容
在这里插入图片描述
进行测试
在这里插入图片描述
发现有OnClick出现

总结

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

你可能感兴趣的:(笔记,移动开发,java,android,android,studio)