Android|AndroidStudio003--Button组件的使用,监听及事件处理

现在让我们来认识第二个小伙伴:Button,翻译为按钮。Button组件继承自TextView,因此只要是TextView有的属性Button都有
Android|AndroidStudio003--Button组件的使用,监听及事件处理
文章图片

我们的Button组件除了拥有从TextView继承来的基础属性外,还有从Drawable资源中获取的属性,Drawable资源中的方法基本上是以state_开头,主要是因为StateListDrawable是Drawable资源的一种,可以根据不同的状态,设置不同的图片效果,在xml文件里面需要有关键节点,在这个节点里面我们就可以设置button的相关属性。这么一说可能有点不形象,我们可以使用代码来一探究竟。现在我们要实现按钮在按下,松开两种状态时背景图片的来回切换
一,设置按钮的基本属性 首先我们编写一个按钮的基本样式,如按钮的文字,文字样式,文字颜色,按钮的背景图,及当按钮为按下情况时的背景图。
1,创建按钮 Android|AndroidStudio003--Button组件的使用,监听及事件处理
文章图片


二,设置按钮的背景图片 1,选择两张图 首先我们需要在drawable文件夹里面新建一些图片进去,如下为了方便起见我们先在选择android软件上已经有的矢量图提供。
Android|AndroidStudio003--Button组件的使用,监听及事件处理
文章图片

接下来我们从里面挑选出两张不同的图即可
Android|AndroidStudio003--Button组件的使用,监听及事件处理
文章图片

【ok后点击“next”→“finish”】
第一张图:
Android|AndroidStudio003--Button组件的使用,监听及事件处理
文章图片

第二张图:Android|AndroidStudio003--Button组件的使用,监听及事件处理
文章图片

2,创建按钮图片选择文件:bt_selector.xml res→drawable→new→Drawable ResourceFile
Android|AndroidStudio003--Button组件的使用,监听及事件处理
文章图片

如下,设置好资源文件的文件名后,点击确定Android|AndroidStudio003--Button组件的使用,监听及事件处理
文章图片

默认的文件里面还什么都没有
Android|AndroidStudio003--Button组件的使用,监听及事件处理
文章图片
现在我们在这里添加两张图,使用item标签来导入。
Android|AndroidStudio003--Button组件的使用,监听及事件处理
文章图片

在上图中的代码中锤子的标签内还有个属性android:state_pressed表示当我们的鼠标按压这个按钮时为锤子的图片,如果没有按压按钮的话默认展示的就是宫殿的图片。
bt_selector.xml

三,按钮监听事件 首先我们的按钮要有名字,才能进行绑定,如下设置按钮的id名字为bt
Android|AndroidStudio003--Button组件的使用,监听及事件处理
文章图片

接下来我们要到java页面进行编写我们的监听方法
Android|AndroidStudio003--Button组件的使用,监听及事件处理
文章图片

接下来在里面写上这些监听方法:点击按钮事件监听 ,长按按钮事件监听,触摸按钮事件监听
Android|AndroidStudio003--Button组件的使用,监听及事件处理
文章图片

之后运行我们的android虚拟手机,点击按钮,在logcat日志捕获里面写上我们的TAG值,找到我们的监听事件
Android|AndroidStudio003--Button组件的使用,监听及事件处理
文章图片

MainActivity.java
import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { finalstaticString TAG="listener"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button bt=findViewById(R.id.bt); bt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.e(TAG,"onClick"); } }); bt.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { Log.e(TAG,"onLongClick"); returnfalse; } }); bt.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { Log.e(TAG,"onTouch"); return false; } }); } }

【Android|AndroidStudio003--Button组件的使用,监听及事件处理】Button组件的使用,监听及事件处理视频略览

    推荐阅读