官方文档
https://developer.android.google.cn/reference/android/widget/Button
Drawable资源的一种,可以根据不同状态,设置不同的图片效果,关键节点
| 属性 | 含义 |
|---|---|
| drawable | 引用的Drawable位图 |
| state_focused | 是否获得焦点 |
| state_pressed | 控件是否被按下 |
| state_enabled | 控件是否可用 |
| state_selected | 控件是否被选择,针对有滚轮的情况 |
| state_checked | 控件是否被勾选 |
| state_checkable | 控件是否可被勾选 |
| state_window_focused | 是否获得窗口焦点 |
| state_active | 控件是否处于活动状态 |
| state_single | 控件包含多个子控件时,确定是否只显示一个子控件 |
| state_first | 控件包含多个子控件时,确定第一个子控件是否处于显示状态 |
| state_middle | 控件包含多个子控件时,确定中间一个子控件是否处于显示状态 |
| state_last | 控件包含多个子控件时,确定最后一个子控件是否处于显示状态 |

当设置背景颜色后,没有效果
→ 修改style



OK
设置按钮状态切换时,颜色变换
new一个drawable


添加两张图片

按下时为房子,默认(没有按时为人)

运行

同样设置一个颜色选择器


运行

前景色

Button button = findViewById(R.id.btn);
//点击事件
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.e(TAG, "onClick: ");
}
});
//长按事件
button.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
Log.e(TAG, "onLongClick: " );
return false;
}
});
//触摸事件
button.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
Log.e(TAG, "onTouch: " );
return false;
}
});
运行,查看日志

ontouch:

点击事件的另一种设置方法:

当然这种方式已经不推荐使用了
