android的图片资源默认是静态的,也就是说是单实例的;如果两个好友的头像一样,当有一个在线,有一个离线时,如果直接改变头像的灰度,那么两个头像会同时变灰或者在线,解决办法是在灰度处理之前调用Drawable的mutate()方法。
下面的代码为灰度处理的代码:??
- //像素过滤矩阵??????
- public?final?static?float[]?BT_SELECTED?=?new?float[]?{?????????
- ????0.308f,?0.609f,?0.082f,?0,?0,???????
- ????0.308f,?0.609f,?0.082f,?0,?0,??
- ????0.308f,?0.609f,?0.082f,?0,?0,??
- ????0,?0,?0,?1,?0??
- };??
- ??
- Drawable?myImage?=?res.getDrawable(R.drawable.h114);??
- myImage.mutate();??
- myImage.clearColorFilter();??
- myImage.setColorFilter(new?ColorMatrixColorFilter(BT_SELECTED));?
