Android学习笔记
Android基础开发——控件
文章目录
- Android学习笔记
- Android基础开发——控件
- 2. Button
- 2.1 StateListDrawable
- 2.2 button按钮背景随点击状态改变
- 2.3 button事件处理
2. Button
官方文档
https://developer.android.google.cn/reference/android/widget/Button
2.1 StateListDrawable
Drawable资源的一种,可以根据不同状态,设置不同的图片效果,关键节点<selector>,只要将Button的background属性设置为该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 | 控件包含多个子控件时,确定最后一个子控件是否处于显示状态 |
2.2 button按钮背景随点击状态改变
当设置背景颜色后,没有效果
→ 修改style
OK
设置按钮状态切换时,颜色变换
new一个drawable
添加两张图片
按下时为房子,默认(没有按时为人)
运行
同样设置一个颜色选择器
运行
前景色
2.3 button事件处理
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:
点击事件的另一种设置方法:
当然这种方式已经不推荐使用了