AndroidStudio003--Button控件的使用,监听及事件处理

现在让我们来认识第二个小伙伴:Button,翻译为按钮。Button控件继承自TextView控件,因此只要是TextView有的属性Button都有

我们的Button控件除了拥有从TextView继承来的基础属性外,还有从Drawable资源中获取的属性,Drawable资源中的方法基本上是以state_开头,主要是因为StateListDrawable是Drawable资源的一种,可以根据不同的状态,设置不同的图片效果,在xml文件里面需要有<selector>关键节点,在这个节点里面我们就可以设置button的相关属性。这么一说可能有点不形象,我们可以使用代码来一探究竟。现在我们要实现按钮在按下,松开两种状态时背景图片的来回切换

一,设置按钮的基本属性

首先我们编写一个按钮的基本样式,如按钮的文字,文字样式,文字颜色,按钮的背景图,及当按钮为按下情况时的背景图。

1,创建按钮

二,设置按钮的背景图片

1,选择两张图

首先我们需要在drawable文件夹里面新建一些图片进去,如下为了方便起见我们先在选择android软件上已经有的矢量图提供。

 接下来我们从里面挑选出两张不同的图即可

ok后点击“next”→“finish”】 

第一张图:

 第二张图:

 2,创建按钮图片选择文件:bt_selector.xml

 res→drawable→new→Drawable Resource  File

 如下,设置好资源文件的文件名后,点击确定

 默认的文件里面还什么都没有

 现在我们在这里添加两张图,使用item标签来导入。

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

 bt_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item   android:drawable="@drawable/ic_baseline_gavel_24" android:state_pressed="true"/>
<item   android:drawable="@drawable/ic_baseline_account_balance_24" />
</selector>

三,按钮监听事件

首先我们的按钮要有名字,才能进行绑定,如下设置按钮的id名字为bt

 接下来我们要到java页面进行编写我们的监听方法

 接下来在里面写上这些监听方法:点击按钮事件监听 ,长按按钮事件监听,触摸按钮事件监听

之后运行我们的android虚拟手机,点击按钮,在logcat日志捕获里面写上我们的TAG值,找到我们的监听事件

 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 {
    final  static  String 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");
              return  false;
          }
      });
     bt.setOnTouchListener(new View.OnTouchListener() {
         @Override
         public boolean onTouch(View view, MotionEvent motionEvent) {
             Log.e(TAG,"onTouch");
             return false;
         }
     });
    }
}

Button组件的使用,监听及事件处理视频略览

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值