当我单击按钮时,如何在android中配置按钮,它会更改其颜色&单击后它将变为默认(上一个)颜色

时间:2019-09-06 17:26:11

标签: android android-studio

我已经为一些空白输入计算和吐司消息配置了它。我是android开发的初学者。谢谢。

4 个答案:

答案 0 :(得分:0)

如果您要这样做,并且已经可以使用按钮进行操作,则意味着您已经在Activity的Java代码中服务onclick侦听器了吗?

因此在您的项目中,您将创建一个全局布尔变量

布尔默认值= true;

在onclick监听器中您会说

JIT_New

我希望这可以帮助您o /

答案 1 :(得分:0)

您需要为按钮创建自定义背景。

在可绘制的文件夹中,创建下一个名为background_button的文件,并将这行内容放入

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
      android:enterFadeDuration="@integer/fade_animation_duration"
      android:exitFadeDuration="@integer/fade_animation_duration">

    <item android:state_enabled="false">
        <bitmap android:src="@drawable/background_button_disabled"/>
    </item>

    <item android:state_enabled="true" android:state_pressed="true">
        <bitmap android:src="@drawable/background_button_pressed"/>
    </item>

     <item android:state_enabled="true" android:state_selected="true">
        <bitmap android:src="@drawable/background_button_pressed"/>
    </item>

    <item>
        <bitmap android:src="@drawable/background_button_normal"/>
    </item>
</selector>

可绘制background_button_normal是按钮的默认背景 可绘制的background_button_pressed是按下按钮时的背景 当您在XML或代码background_button_disabled

中禁用按钮android:enabled="false时,可绘制的button.setEnabled(false)是您的背景

答案 2 :(得分:0)

只需使用标准的MaterialButton

<com.google.android.material.button.MaterialButton
    android:id="@+id/material_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/button_label"/>

它与<selector>一起自动自动用于检查/启用/禁用状态。 您可以选择其他styles,还可以使用app:backgroundTint属性自定义颜色。

这是backgroudTint中使用的默认选择器。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:color="?attr/colorPrimary" android:state_enabled="true"/>
  <item android:alpha="0.12" android:color="?attr/colorOnSurface"/>
</selector>

答案 3 :(得分:0)

您可以定义一个方法,该方法将在每次单击按钮i-e时以XML:onClick()方法或Java:yourButton.setOnClickListener()

调用

changeColor()是我用来更改按钮颜色的方法。

代码如下:

在活动开始时定义此变量:

public static boolean applyColor = false;
Button myBtn = (Button) findViewById(R.id.my_btn_id); //write your button ID in place of my_btn_id's place

然后设置您的onClickListener:

myBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
    changeColor();
}
});

现在定义changeColor方法,例如:

private void changeColor() {
        if(!applyColor) {
            myBtn.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
            applyColor = !applyColor;
        }
        else{
            myBtn.setBackgroundColor(getResources().getColor(R.color.colorPrimaryDark));
            applyColor = !applyColor;
        }

    }