在android中将颜色代码转换为float数组

时间:2014-07-09 08:51:08

标签: android android-layout colormatrixfilter

颜色资源文件:

<color name="red">#ffff5454</color>

代码:

int color = Resources.getColor(getResources().Color.red);

// how to get paramArrayOfFloat from color?

ColorMatrix localColorMatrix = new ColorMatrix();
localColorMatrix.setSaturation(0.0F);
localColorMatrix.set(paramArrayOfFloat);

如何从我的色号中获取paramArrayOfFloat?我想将我的数字转换为浮点数组。这可能在android?

1 个答案:

答案 0 :(得分:1)

嘉洛斯:

  

4x5矩阵,用于转换位图的颜色+ alpha分量。   矩阵存储在一个数组中,其处理如下:[   a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t]   应用于颜色[r,g,b,a],得到的颜色计算为   (夹紧后)R'= a * R + b * G + c * B + d * A + e; G'= f * R + g * G + h * B.   + i * A + j; B'= k * R + 1 * G + m * B + n * A + o; A'= p * R + q * G + r * B + s * A + t;

红色 -

 float[] colorTransform = {
        0, 1f, 0, 0, 0, 
        0, 0, 0f, 0, 0,
        0, 0, 0, 0f, 0, 
        0, 0, 0, 1f, 0};

ColorMatrix localColorMatrix = new ColorMatrix();
localColorMatrix.setSaturation(0.0F); //Remove Colour 
localColorMatrix.set(colorTransform); //Apply Red say

如需更多检查:ColorMatrixSampleColorMatrix

注意:

您可以查看converting-a-web-color-to-an-rgb-float-array-for-after-effects的链接。