Android sutdio 开发学习笔记——第三篇:实现一个按钮

本文详细介绍了Android中的Button类,包括其基本属性如文本、ID、点击事件处理、背景设置等,以及布局位置属性,并展示了如何通过XML和代码实现点击事件和改变背景颜色的功能。
摘要由CSDN通过智能技术生成

Button

Button类继承于TextView

基本属性

属性 (Attribute)描述 (Description)
android:text设置按钮显示的文本 (Sets the text displayed on the button)
android:id按钮的唯一标识符 (Unique identifier for the button)
android:onClick按钮点击时触发的方法 (Method to be invoked when the button is clicked)
android:background设置按钮的背景 (Sets the background for the button) tip:因为更新的原因,使用这个属性需要将values\themes.xml里改为DarkActionBar.Bridge才可以使用
android:layout_width设置按钮的宽度 (Sets the width of the button)
android:layout_height设置按钮的高度 (Sets the height of the button)
android:enabled设置按钮是否可用 (Sets whether the button is enabled)
android:visibility设置按钮的可见性 (Sets the visibility of the button)

位置属性

android:layout_gravity按钮的布局位置。
android:gravity按钮内文本的对齐方式。
android:textSize按钮文本的字体大小。
android:textColor按钮文本的颜色。
android:padding按钮内边距。
android:layout_margin按钮外边距。
android:layout_alignParentLeft按钮是否与父容器的左边对齐。
android:layout_alignParentRight按钮是否与父容器的右边对齐。
android:layout_alignParentTop按钮是否与父容器的顶部对齐。
android:layout_alignParentBottom按钮是否与父容器的底部对齐。
android:layout_alignParentStart按钮是否与父容器的开始位置对齐。
android:layout_alignParentEnd按钮是否与父容器的结束位置对齐。
android:layout_centerHorizontal按钮是否水平居中。
android:layout_centerVertical按钮是否垂直居中。
android:layout_toLeftOf按钮位于某个视图的左侧。
android:layout_toRightOf按钮位于某个视图的右侧。
android:layout_above按钮位于某个视图的上方。
android:layout_below按钮位于某个视图的下方。
android:layout_alignLeft按钮是否与另一个视图的左边对齐。
android:layout_alignRight按钮是否与另一个视图的右边对齐。
android:layout_alignTop按钮是否与另一个视图的顶部对齐。
android:layout_alignBottom按钮是否与另一个视图的底部对齐。

点击改变背景颜色

如果要实现点击改变按钮背景颜色的效果,和html中使用判断是否点击的属性改变值不同,需要根据规则在res里编写具体规则,在xml中引用规则即可。

<Button
      android:layout_width="100dp"
      android:layout_height="100dp"
      android:backgroundTint="@color/btn_color"
      android:text="hello" />

创建color文件夹和具体xml,然后编写代码:

来自:res/color/btn_color.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/black" android:state_pressed="true"/>
    <item android:color="#EFEFEF"/>
</selector>

判断点击后为true,改变颜色为balck,否则默认情况为白色#EFEFEF

举一反三,其他情况也是使用同样的方法进行引用和判断。

点击事件

当你在Android Studio中创建一个按钮(Button)时,你通常会想要添加一个点击事件,以便在用户点击按钮时执行特定的操作。以下是几种常见的按钮点击事件及其使用方法:

1. 使用匿名内部类
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // 在此处添加点击事件的操作
    }
});
2. 使用Lambda表达式(适用于Java 8及以上)
button.setOnClickListener(v -> {
    // 在此处添加点击事件的操作
});
3. 在 XML 中添加 onClick 属性(不推荐使用,仅适用于单一事件)

在布局文件中添加 onClick 属性:

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Click me!"
    android:onClick="onButtonClick" />

然后在相应的活动(Activity)中添加一个公共方法:

public void onButtonClick(View view) {
    // 在此处添加点击事件的操作
}

这些是一些常见的按钮点击事件的使用方法。你可以根据自己的需要选择其中一种或多种来实现按钮的点击功能。

在 Android Studio 中,按钮可以响应多种点击事件以及触摸事件。以下是一些常见的按钮事件类型:

点击事件(onClick)

点击事件是用户单击按钮时触发的事件。当用户点击按钮时,执行预定义的操作。

长按事件(onLongClick)

长按事件是用户长时间按住按钮时触发的事件。通常用于触发需要长时间按住才执行的操作,例如弹出上下文菜单或启动拖放操作。

触摸事件(onTouch)

触摸事件是用户触摸按钮(包括按下、移动和抬起)时触发的事件。可以根据手指在按钮上的动作执行不同的操作,例如实现自定义的手势识别或按钮效果。

按下事件(onPress)

按下事件是用户按下按钮时触发的事件,通常在用户按下按钮但尚未释放时执行。与点击事件不同,按下事件不需要用户释放按钮即可触发。

释放事件(onRelease)

释放事件是用户释放按钮时触发的事件,与按下事件相对应。通常与按下事件结合使用,以执行需要在用户按下按钮后立即释放时执行的操作。

在我理解看来,如果官方自带的事件无法满足你的开发需求,可以自定义一个点击事件,用来实现更高客制化的需求。

例子:
//        通过ID获取按钮组件
        Button btn = findViewById(R.id.btn_text);

//        点击事件
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //通过日志输出点击后的测试文本
                Log.e(TAG,"HELLO Click");

            }
        });

//        长按事件
        btn.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {

                return false;
            }
        });

//        触摸事件
        btn.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {

                return false;
            }
        });
  • 24
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值