Android Studio 中Button被按下后颜色变化并保持,等待下一次按下颜色翻转

Android Studio 中Button被按下后颜色变化并保持,等待下一次按下颜色翻转

Android Studio


在Android Studio中使用翻转按键ToggleButton来实现按键按下时案件颜色变化并保持,再次按下后按键颜色变回初始时的颜色。

为了美观,先给按键做了设计处理,所以分为3步去实现:
一、在drawable中新建两个xml文件,分别是shape_pressed.xml和shape_normal.xml
在这里插入图片描述
在shape_pressed.xml写上以下代码:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/color_yellow" />
    <stroke android:width="1dip" android:color="@color/white"/>
    <!-- 圆角 -->
    <corners android:radius="10dp" />
    <!-- 边距 -->
    <padding
        android:bottom="5dp"
        android:left="5dp"
        android:right="5dp"
        android:top="5dp" />
</shape>

在shape_normal.xml写上以下代码:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/color_green" />
    <stroke android:width="1dip" android:color="@color/white"/>
    <!-- 圆角 -->
    <corners android:radius="10dp" />
    <!-- 边距 -->
    <padding
        android:bottom="5dp"
        android:left="5dp"
        android:right="5dp"
        android:top="5dp" />
</shape>

说明:以上两个xml文件只是给按键做一个简单的美化。shape_normal表示按键没被按下时的状态,shape_pressed表示在按键被按下后的状态显示。

二、新建一个selector.xml
在这里插入图片描述

button_selector.xml代码如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true"
        android:drawable="@drawable/shape_pressed"/>
    <item android:state_checked="false"
        android:drawable="@drawable/shape_normal"/>
</selector>

选择器的代码完成后,就可以去布局文件中使用了

三、打开布局文件,选择ToggleButton,代码如下:

<ToggleButton
                        android:id="@+id/tv_auto"
                        android:layout_width="150dp"
                        android:layout_height="50dp"
                        android:textColor="#000000"
                        android:textOff="自动"
                        android:textOn="结束"
                        android:background="@drawable/button_selector"
                        android:textSize="23dp"/>

总结:经过以上三个步骤,就可以实现我们开头所说的功能,如果想要实现按键按下后颜色变深或者变浅,在松开后颜色变回来,则可以在第二个步骤里把state_checked改成state_pressed,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
        android:drawable="@drawable/shape_pressed"/>
    <item android:state_pressed="false"
        android:drawable="@drawable/shape_normal"/>
</selector>

至此,已完成!

可以通过设置按钮的背景颜色或者使用selector来实现按钮的按前和按后的颜色。具体的实现方式如下: 1. 设置按钮背景颜色 可以通过设置按钮的背景颜色来改变按钮的按前和按后的颜色。可以使用以下代码来实现: ``` <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:background="@color/button_color" /> ``` 在这个例子,我们使用了一个颜色资源文件来设置按钮的背景颜色。在res/values/colors.xml文件添加以下代码: ``` <resources> <color name="button_color">#FF4081</color> </resources> ``` 这样就可以将按钮的背景颜色设置为粉红色了。 2. 使用selector实现按钮按前和按后的颜色 可以使用selector来实现按钮按前和按后的颜色。selector是一个XML文件,用于根据不同的状态来选择不同的Drawable。可以使用以下代码来创建一个selector: ``` <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@color/button_pressed_color" /> <item android:drawable="@color/button_normal_color" /> </selector> ``` 在这个例子,我们设置了两个item,一个是按钮被按下时的状态,另一个是按钮正常状态的颜色。在res/values/colors.xml文件添加以下代码: ``` <resources> <color name="button_normal_color">#FF4081</color> <color name="button_pressed_color">#E91E63</color> </resources> ``` 这样就可以将按钮的按前和按后的颜色分别设置为粉红色和洋红色了。最后在布局文件使用以下代码来设置按钮的背景: ``` <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:background="@drawable/button_selector" /> ``` 这样就可以实现按钮按前和按后的颜色的改变了。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值