如何从android

时间:2017-10-06 13:34:46

标签: android

我的布局中有ImageView。我使用setColorFilter()为该图像设置了一种颜色。现在我尝试使用getColorFilter()获得相同的颜色。但是它返回了一个ColorFilter对象。如何从中提取十六进制颜色。

这是我尝试为图像设置颜色的方式:

image.setColorFilter(Color.parseColor("#ECECEC"), PorterDuff.Mode.MULTIPLY);

现在我使用下面的代码返回ColorFilter对象:

image.getColorFilter()

但是如何从中获取颜色的十六进制值或RGB值?

1 个答案:

答案 0 :(得分:4)

似乎获取颜色的方法是隐藏的,原因是google最为人所知:

/**
 * Returns the ARGB color used to tint the source pixels when this filter
 * is applied.
 *
 * @see Color
 * @see #setColor(int)
 *
 * @hide
 */
public int getColor() {
    return mColor;
}

您可以使用变量来存储:

int colorFilterColor ;

并设置colorFilter:

int color = Color.parseColor("#ECECEC");
image.setColorFilter(color , PorterDuff.Mode.MULTIPLY);
colorFilterColor  = color ;

获得颜色:

public int getFilterColor(){
return colorFilterColor ;
}