Android之Button(按钮)与ImageButton(图像按钮)

本节引言:

今天给大家介绍的Android基本控件中的两个按钮控件,Button普通按钮和ImageButton图像按钮; 其实ImageButton和Button的用法基本类似,至于与图片相关的则和后面ImageView相同,所以本节 只对Button进行讲解,另外Button是TextView的子类,所以TextView上很多属性也可以应用到Button 上!我们实际开发中对于Button的,无非是对按钮的几个状态做相应的操作,比如:按钮按下的时候 用一种颜色,弹起又一种颜色,或者按钮不可用的时候一种颜色这样!上述实现无非是通过 StateListDrawable这种Drawable资源来实现,即编写一个drawable的资源文件,就说这么多, 直接开始本节内容~

Android之Button(按钮)与ImageButton(图像按钮)_第1张图片

1.StateListDrawable简介:

StateListDrawable是Drawable资源的一种,可以根据不同的状态,设置不同的图片效果,关键节点 < selector >,我们只需要将Button的background属性设置为该drawable资源即可轻松实现,按下 按钮时不同的按钮颜色或背景!
我们可以设置的属性:

drawable:引用的Drawable位图,我们可以把他放到最前面,就表示组件的正常状态~

state_focused:是否获得焦点

state_window_focused:是否获得窗口焦点

state_enabled:控件是否可用

state_checkable:控件可否被勾选,eg:checkbox

state_checked:控件是否被勾选

state_selected:控件是否被选择,针对有滚轮的情况

state_pressed:控件是否被按下

state_active:控件是否处于活动状态,eg:slidingTab

state_single:控件包含多个子控件时,确定是否只显示一个子控件

state_first:控件包含多个子控件时,确定第一个子控件是否处于显示状态

state_middle:控件包含多个子控件时,确定中间一个子控件是否处于显示状态

state_last:控件包含多个子控件时,确定最后一个子控件是否处于显示状态


2.实现按钮的按下效果:

好的,先准备三个图片背景,一般我们为了避免按钮拉伸变形都会使用.9.png作为按钮的drawable! 先来看下 运行效果图:

Android之Button(按钮)与ImageButton(图像按钮)_第2张图片


    
    
    

3.Button的三种点击事件

当布局控件的Button设置好id,并设置好点击事件android:onClick="onClick"

第一种,也是最简单的,只需要设置好点击事件即可

public void onClick(View view){}

是不是很简单,如果有多个Button的时候可以这样写

public void onClick(View view){
    switch(view.getId()){
      case R.id.button1:
          break;
      case R.id.button2:
          break;
  }
}
第二种
findViewById(R.id.btn_click_one).setOnClickListener(new onClickListener(){
    public void onClick(View view){}
});
第三种就是第二种的演变
findViewById(R.id.btn_click_one).setOnClickListener( listener)
Button.OnClickListener listener = new Button.OnClickListener(){//创建监听对象    
        public void onClick(View v){    
            String strTmp="点击Button02";    
            Ev1.setText(strTmp);    
        }    

要说区别,我觉得也没多大区别,无非匿名内部类的第二种响应速度快一些,当然按钮多的时候我是建议用第一种,方便,当然有时候第一种情况也不能用,比如重写View的时候,onclick的view就会冲突

你可能感兴趣的:(Android之Button(按钮)与ImageButton(图像按钮))