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