button.getBackground().setColorFilter(new LightingColorFilter(0xEEEEEFF, 0xFFAA0000))
这里主要说明一下 LightingColorFilter,它是一个 ColorMatrix对象,ColorMatrix对象用处较大,多用来对图片进行特效处理,如色彩变化、位置及变形处理。
ColorMatrix顾名思义颜色矩阵,google定义其为一个5x4的矩阵,但实际上使用一个一维数组表示的,其存储的值是用来对图片进行修正的。通过矩阵运算,修改图片的RGBA的值,来达到颜色变化的效果
[ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t ],转换成矩阵也就是如下所示:
a, b, c, d, e R
f, g, h, i, j G
k, l, m, n, o B
p, q, r, s, t A
1
ColorMatrix cm = new ColorMatrix();
cm.set(new float[] {
1, 0, 0, 0, 70,
0, 1, 0, 0, 50,
0, 0, 1, 0, 0,
0, 0, 0, 1, 0 });
//btnPrevWeek.getBackground().setColorFilter(0xFFFF0000, Mode.MULTIPLY);
//btnPrevWeek.getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF,0xFFAA0000));
btnPrevWeek.getBackground().setColorFilter(new ColorMatrixColorFilter(cm));