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按钮背景随点击状态改变

android button 边框颜色 设置 android改变button的背景颜色_控件

当设置背景颜色后,没有效果

→ 修改style

android button 边框颜色 设置 android改变button的背景颜色_学习_02

android button 边框颜色 设置 android改变button的背景颜色_控件_03

android button 边框颜色 设置 android改变button的背景颜色_ui_04

OK

设置按钮状态切换时,颜色变换

new一个drawable

android button 边框颜色 设置 android改变button的背景颜色_Android_05

android button 边框颜色 设置 android改变button的背景颜色_Android_06

添加两张图片

android button 边框颜色 设置 android改变button的背景颜色_学习_07

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

android button 边框颜色 设置 android改变button的背景颜色_控件_08

运行

android button 边框颜色 设置 android改变button的背景颜色_android_09

同样设置一个颜色选择器

android button 边框颜色 设置 android改变button的背景颜色_学习_10

android button 边框颜色 设置 android改变button的背景颜色_学习_11

运行

android button 边框颜色 设置 android改变button的背景颜色_学习_12

前景色

android button 边框颜色 设置 android改变button的背景颜色_学习_13

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;
    }
});

运行,查看日志

android button 边框颜色 设置 android改变button的背景颜色_ui_14

ontouch:

android button 边框颜色 设置 android改变button的背景颜色_控件_15

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

android button 边框颜色 设置 android改变button的背景颜色_学习_16

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

android button 边框颜色 设置 android改变button的背景颜色_android_17