3

我正在使用 setColorFilter 为某些按钮着色...代码是这样的:

    final Button falso = (Button) findViewById(R.id.falso);
    final Button vero = (Button) findViewById(R.id.vero);


    vero.setOnClickListener(new OnClickListener() {         
        public void onClick(View v) {
            vero.getBackground().setColorFilter(new LightingColorFilter(0x00000000, 0x00FF0FF));    
            falso.getBackground().clearColorFilter();
            esame.set("V");
        }
    });


    falso.setOnClickListener(new OnClickListener() {            
        public void onClick(View v) {
            falso.getBackground().setColorFilter(new LightingColorFilter(0x00000000, 0x00FF0FF));
            vero.getBackground().clearColorFilter(); 
            esame.set("F");
        }
    });

当我单击“vero”按钮时,我想重置“falso”的颜色,反之亦然。我在 android ics 上尝试了这段代码,一切都很好,但是当我在 android 2.3 上尝试它时,我感到很惊讶。

当我单击按钮时,颜色不会重置,我不明白为什么。

4

2 回答 2

2

我找到了解决方案:

use button.invalidate();

在我清除背景后

于 2012-09-27T15:39:18.933 回答
0

将 ColorFilter 设置为 0 将通过清除过滤器来完成您的工作。

vero.setInt(vero.getBackground(), "setColorFilter", 0); 
于 2012-09-27T13:43:45.463 回答