Android开发-Android常用组件-Button按钮

news/2025/2/21 7:04:39/

4.3  Button(按钮)

  • Button控件继承TextView ,拥有TextView的属性。
  • StateListDrawable简介

StateListDrawable是Drawable资源的一种,可以根据不同的状态,设置不同的图片效果,关键节点<selector>,我们只需要将Button的background 属性设置为该drawable资源,即可轻松实现按下按钮时不同的按钮颜色或背景!

属性名

说明

drawable

引用的Drawable位图,我们可以把他放到最前面,就表示组件的正常状态~

state_focused

是否获得焦点

state_window_focused

是否获得窗口焦点

state_enabled

控件是否可用

state_checkable

控件可否被勾选

state_checked

控件是否被勾选

state_selected

控件是否被选择,针对有滚轮的情况

state_pressed

控件是否被按下

state_active

控件是否处于活动状态

state_single

控件包含多个子控件时,确定是否只显示一个子控件

state_first

控件包含多个子控件时,确定第一个子控件是否处于显示状态

state_middle

控件包含多个子控件时,确定中间一个子控件是否处于显示状态

state_last

控件包含多个子控件时,确定最后一个子控件是否处于显示状态

 
示例:
在drawable文件夹下新建一个xml文件 btn_bg1.xml。

 

 btn_bg1.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@color/dark_gray" android:state_pressed="true"/>  //控件被按下时变成深灰<item android:drawable="@color/lawn_green" android:state_enabled="false"/>    //控件不可用时变成绿色<item android:drawable="@color/purple_200"/>    //控件平常时显示浅紫色
</selector>

 

 layout文件夹中创建botton.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:background="#eeeeee"android:paddingTop="50dp"><Buttonandroid:id="@+id/btnOne"android:layout_width="match_parent"android:layout_height="64dp"android:background="@drawable/btn_bg1"android:text="按钮"android:textColor="@color/white"android:textSize="20sp"android:textStyle="bold"/><Buttonandroid:id="@+id/btnTwo"android:layout_width="match_parent"android:layout_height="64dp"android:text="按钮不可用"android:textColor="@color/black"android:textSize="20sp"android:textStyle="bold"/></LinearLayout>

MainActivity.java:

package com.example.myapplication;import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class MainActivity extends AppCompatActivity {private Button btnOne,btnTwo;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.button);btnOne = (Button) findViewById(R.id.btnOne);btnTwo = (Button) findViewById(R.id.btnTwo);btnTwo.setOnClickListener(new View.OnClickListener(){   //按钮绑定事件@Overridepublic void onClick(View v){if (btnTwo.getText().toString().equals("按钮不可用")){btnOne.setEnabled(false);btnTwo.setText("按钮可用");}else {btnOne.setEnabled(true);btnTwo.setText("按钮不可用");}}});}
}

 


http://www.ppmy.cn/news/36989.html

相关文章

手写 Promise 静态方法

文章目录手写 promiseresolve、rejectall、allSettledrace、any完整的 promise手写 promise 前置背景&#xff1a;大白话手写 promise resolve、reject 作为类直接调用的方法&#xff0c;自然是静态方法。 **resolve 与 reject 的原理都是内部自己实例化了一个 promise&…

hadoop伪分布式集群搭建

基于hadoop 3.1.4 一、准备好需要的文件 1、hadoop-3.1.4编译完成的包 链接: https://pan.baidu.com/s/1tKLDTRcwSnAptjhKZiwAKg 提取码: ekvc 2、需要jdk环境 链接: https://pan.baidu.com/s/18JtAWbVcamd2J_oIeSVzKw 提取码: bmny 3、vmware安装包 链接: https://pan.baidu…

go下载gin框架

1、开启Go Modules功能&#xff08;已开启可忽略此步骤&#xff09; go module是go官方自带的go依赖管理功能&#xff0c;从Go 1.13版本正式推荐使用&#xff0c;它可以将项目下的所有依赖集中到 go.mod 文件&#xff0c;进行集中管理。使用go module管理依赖将会在项目根目录…

【学习笔记】计算机视觉与深度学习(5.经典网络分析)

学习视频&#xff1a; 鲁鹏-计算机视觉与深度学习 同系列往期笔记&#xff1a; 【学习笔记】计算机视觉与深度学习(1.线性分类器) 【学习笔记】计算机视觉与深度学习(2.全连接神经网络) 【学习笔记】计算机视觉与深度学习(3.卷积与图像去噪/边缘提取/纹理表示) 【学习笔记】计…

mysql binlog 的配置与使用

1. 查看 binlog 是否开启 show global variables like log_bin;sql_log_bin : 当前会话 是否要记录 binlog 2. mysql 添加如下配置 修改 my.cnf 文件&#xff0c;一般来说都位于 /etc/my.cnf 这边。 在 [mysqld] 下写入如下内容&#xff1a; ## binlog d的日志模式 binlog-…

LCHub:ChatGPT4和低代码来临,程序员面临下岗?

一个网友吐槽道: “ 建站出来了,你们说程序员会失业。 低代码出来了,你们说程序员会失业。 Copilot出来了,你们说程序员会失业。 Chatgpt出来了,你们说程序员会失业 虽然这只是网友的吐槽,但却引起了小编的好奇。为何程序员那么容易被新技术取代?今天小编打算跟大家…

一文总结经典卷积神经网络CNN模型

一般的DNN直接将全部信息拉成一维进行全连接&#xff0c;会丢失图像的位置等信息。 CNN&#xff08;卷积神经网络&#xff09;更适合计算机视觉领域。下面总结从1998年至今的优秀CNN模型&#xff0c;包括LeNet、AlexNet、ZFNet、VGG、GoogLeNet、ResNet、DenseNet、SENet、Sque…

大数据分析工具Power BI(十四):制作相关性分析图表

制作相关性分析图表 相关性分析可以分析两个指标之间的关系,验证指标之间是否存在某种关系。可以使用散点图、气泡图来进行相关性分析。 一、散点图 需求:使用散点图展示"2022年点播订单表"每月订单量和营收金额相关性。 新建页面并命名为散点图,