Android:禁用/启用ImageButton并显示不同的颜色

Android:禁用/启用ImageButton并显示不同的颜色,android,Android,我是Android开发新手。我想实现以下功能,但对如何实现感到困惑: 最初,图像按钮被禁用,颜色为灰色。 单击“图像”按钮时,表示启用按钮,按钮的色调将变为橙色或其他颜色,而不是返回灰色。 当再次单击图像按钮时,意味着禁用按钮,颜色将再次变为灰色。 我尝试的代码如下所示: 单击按钮\u mic.xml 此代码的结果是显示黑色图标和原始图标颜色,始终不是灰色或橙色。 我发现了一些关于stackoverflow上禁用/启用图像按钮的问题,但我不清楚答案。有人能帮我解决这个问题吗?谢谢大家! 我自己解

我是Android开发新手。我想实现以下功能,但对如何实现感到困惑:

最初,图像按钮被禁用,颜色为灰色。 单击“图像”按钮时,表示启用按钮,按钮的色调将变为橙色或其他颜色,而不是返回灰色。 当再次单击图像按钮时,意味着禁用按钮,颜色将再次变为灰色。 我尝试的代码如下所示:

单击按钮\u mic.xml

此代码的结果是显示黑色图标和原始图标颜色,始终不是灰色或橙色。
我发现了一些关于stackoverflow上禁用/启用图像按钮的问题,但我不清楚答案。有人能帮我解决这个问题吗?谢谢大家!

我自己解决。我误解了这个词的意思。我下面的代码实现了我想要的

private int MIC_STATUS = 0; // MIC OFF
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_page);
        final ImageButton imageButton = (ImageButton) findViewById(R.id.imageButton);
        imageButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(MIC_STATUS == 0){ // mic is off, turn on the mic
                    imageButton.setColorFilter(Color.rgb(255,42,72));
                    MIC_STATUS = 1;
                }

                else if(MIC_STATUS == 1){ // mic is on, turn off the mic
                    imageButton.setColorFilter(Color.WHITE);
                    MIC_STATUS = 0;
                }

            }
        });
}

您需要发布您尝试的相关代码。你这里有很多问题,很难说清楚你到底遇到了什么on@codeMagic代码已发布。谢谢提醒。
 <ImageButton
        android:id="@+id/imageButton"
        android:layout_width="72dp"
        android:layout_height="73dp"
        android:background="@android:color/transparent"
        android:onClick="onClick"
        android:src="@drawable/clickbutton_mic" />
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_page);
        ImageButton btn = (ImageButton) findViewById(R.id.imageButton);
        btn.setEnabled(false);
    }

public void onClick(ImageButton btn)
    {
        if(!btn.isEnabled()){
            btn.setEnabled(true);
        }
        else{
            btn.setEnabled(false);
        }
    }
private int MIC_STATUS = 0; // MIC OFF
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_page);
        final ImageButton imageButton = (ImageButton) findViewById(R.id.imageButton);
        imageButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(MIC_STATUS == 0){ // mic is off, turn on the mic
                    imageButton.setColorFilter(Color.rgb(255,42,72));
                    MIC_STATUS = 1;
                }

                else if(MIC_STATUS == 1){ // mic is on, turn off the mic
                    imageButton.setColorFilter(Color.WHITE);
                    MIC_STATUS = 0;
                }

            }
        });
}