Android 中离线用户的灰色头像处置方法
Android 中离线用户的灰色头像处理方法
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));