前言
Butten 继承自 TextView,因而很多 TextView的属性也可以用在 Button 上。
ImageButton 继承自 Button,用法与 Button 大致相同,值得注意的是 Button可以显示文字,而 ImageButton 无法通过 android:text 显示文字,主要拿来显示图片。
相关方法&属性
除了构造函数外,Button类没有自己定义的方法,主要通过继承父类的方法实现对按钮组件的操作。
Button 常用属性与 TextView 相同。
默认情况下,Button 使用安卓系统提供的默认背景,因此可能在不同设备上风格不同,为此 Android 支持修改显示风格。
ImageButton则可通过android:src显示图片。
StateListDrawable
前面 TextView 中讲到了 drawable 文件中的<spape>标签,本次我们将讲解 <selector> 标签,并通过它实现点击效果。
<selector> 标签相关属性
rawable:引用的Drawable位图,我们可以把他放到最前面,就表示组件的正常状态~
state_focused:是否获得焦点
state_window_focused:是否获得窗口焦点
state_enabled:控件是否设置了响应事件
state_checkable:控件可否被勾选; 例如:checkbox
state_checked:控件是否被勾选
state_selected:控件是否被选择,针对有滚轮的情况
state_pressed:控件是否被按下/点击
state_active:控件是否处于活动状态,eg:slidingTab
state_single:控件包含多个子控件时,确定是否只显示一个子控件
state_first:控件包含多个子控件时,确定第一个子控件是否处于显示状态
state_middle:控件包含多个子控件时,确定中间一个子控件是否处于显示状态
state_last:控件包含多个子控件时,确定最后一个子控件是否处于显示状态
示例(按键点击效果)
button_click.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@drawable/timg1"/>
<item
android:drawable="@drawable/timg2"/>
</selector>
MainActivity.java
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center|top">
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="20dp"
android:text="button"
android:background="@drawable/button_click"/>
<ImageButton
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="20dp"
android:src="@drawable/left"/>
</LinearLayout>
效果演示图
点击事件
前面做登录界面的时候,使用到了登录按钮跳转到欢迎界面。
实现点击事件有两种方法;第一种是 android:onClick , 第二种是 OnClick ( )。
android:onClick
以 Button 为例,当按键按下事,会触发 showToast 方法。
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="20dp"
android:text="button"
android:background="@drawable/button_click"
android:onClick="showToast"/>
回到 Activity,编写showToast()函数。
public void showToast(View view){
Toast.makeText(this,"方法1:我被点到啦",Toast.LENGTH_SHORT).show();
}
onClick( )
效果演示