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

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

AndroidStudio003--Button组件的使用,监听及事件处理_第1张图片

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

一,设置按钮的基本属性

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

1,创建按钮

AndroidStudio003--Button组件的使用,监听及事件处理_第2张图片

二,设置按钮的背景图片

1,选择两张图

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

AndroidStudio003--Button组件的使用,监听及事件处理_第3张图片

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

AndroidStudio003--Button组件的使用,监听及事件处理_第4张图片

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

第一张图:

AndroidStudio003--Button组件的使用,监听及事件处理_第5张图片

 第二张图:AndroidStudio003--Button组件的使用,监听及事件处理_第6张图片

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

 res→drawable→new→Drawable Resource  File

AndroidStudio003--Button组件的使用,监听及事件处理_第7张图片

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

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

AndroidStudio003--Button组件的使用,监听及事件处理_第9张图片 现在我们在这里添加两张图,使用item标签来导入。

AndroidStudio003--Button组件的使用,监听及事件处理_第10张图片

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

 bt_selector.xml




三,按钮监听事件

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

AndroidStudio003--Button组件的使用,监听及事件处理_第11张图片

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

AndroidStudio003--Button组件的使用,监听及事件处理_第12张图片

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

AndroidStudio003--Button组件的使用,监听及事件处理_第13张图片

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

AndroidStudio003--Button组件的使用,监听及事件处理_第14张图片

 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组件的使用,监听及事件处理视频略览

你可能感兴趣的:(Android,studio,android,android,studio)