Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用ColorMatrixColorFilter过滤alpha_Android_Colormatrix - Fatal编程技术网

Android 使用ColorMatrixColorFilter过滤alpha

Android 使用ColorMatrixColorFilter过滤alpha,android,colormatrix,Android,Colormatrix,我想用ColorMatrixColorFilter过滤颜色。 我已经有一个代码运行良好,但。。。我不为阿尔法工作 static private ColorMatrixColorFilter getFilter(int backgroundColor, int foregroundColor) { float rB = (float) (Color.red(backgroundColor)) / 255; float gB = (float) (Color.green(backgr

我想用ColorMatrixColorFilter过滤颜色。 我已经有一个代码运行良好,但。。。我不为阿尔法工作

static private ColorMatrixColorFilter getFilter(int backgroundColor, int foregroundColor)
{
    float rB = (float) (Color.red(backgroundColor)) / 255;
    float gB = (float) (Color.green(backgroundColor)) / 255;
    float bB = (float) (Color.blue(backgroundColor)) / 255;

    float rF = (float) (Color.red(foregroundColor)) / 255;
    float gF = (float) (Color.green(foregroundColor)) / 255;
    float bF = (float) (Color.blue(foregroundColor)) / 255;

    float[] colorTransform = { rB - rF, 0, 0, 0, rF * 255, 0, gB - gF, 0, 0, gF * 255, 0, 0, bB - bF, 0, bF * 255, 0, 0, 0, 1, 0 };

    ColorMatrix colorMatrix = new ColorMatrix(colorTransform);

    return new ColorMatrixColorFilter(colorMatrix);

}
我能为阿尔法做些什么? 因为这里,alpha总是“1”


谢谢。

您清楚地知道,此数组中的最后四个条目构成了过滤器中颜色矩阵的alpha分量,因此我读到这篇文章,您希望alpha分量与蓝色的数量成比例。如果是这样,我能否谦虚地建议Android中alpha组件的范围可能是[0255]而不是[0,1]?至少,我想这就是我上次做雄性化时的记忆。所以试试[…0,0255,0]。最好的。哼,我怎么解释呢。。。这是一个乘法,所以计算是=alpha(这里是1)*alpha图像。但是,有了它,我们就不能有背景图像和前景图像的不同alpha…哦,对不起,在打字之前读得太快实在是太愚蠢了。你知道当你看到有人犯了错误,你会在任何地方看到吗?那个最好的。