灰色的应用程序图标拼图

时间:2012-07-06 12:44:04

标签: android process icons

我使用这些代码来使RunningAppProcessInfo的图标变灰,但会产生一些副作用,其他列表中的所有图标也会变灰! SUP?任何解决方案?

        ImageView icon = (ImageView) view.findViewById(R.id.icon);
        if (_isChecked) {
            ColorMatrix cm = new ColorMatrix();
            cm.setSaturation(0);
            icon.setColorFilter(new ColorMatrixColorFilter(cm));
        }

2 个答案:

答案 0 :(得分:1)

如果你在这里谈论ListView,那么就这样做:

ImageView icon = (ImageView) view.findViewById(R.id.icon); 
if (_isChecked) { 
    ColorMatrix cm = new ColorMatrix(); 
    cm.setSaturation(0); 
    icon.setColorFilter(new ColorMatrixColorFilter(cm)); 
} 
else {
    // Reset saturation to normal here
}

原因是视图在ListView中重用以提高性能。

答案 1 :(得分:0)

是的,我在list1中做了你说的话,但在list2中仍有副作用: 事实:似乎所有RunningAppProcessInfo只共享相同的图标。

        if (_isChecked) {

            ColorMatrix cm = new ColorMatrix();
            cm.setSaturation(1);
            icon.setColorFilter(new ColorMatrixColorFilter(cm));

        } else {
            appName.setTextColor(Color.GRAY);
            whitelist_item_type_tv.setTextColor(Color.GRAY);

            ColorMatrix cm = new ColorMatrix();
            cm.setSaturation(0);
            icon.setColorFilter(new ColorMatrixColorFilter(cm));

        }