利用Paint的 setColorFilter 颜色过滤 来实现按钮被按下的效果

private boolean isGrayMode = false;
public void setGrayMode(boolean bFlag) {
	if(isGrayMode == bFlag)
	{
		return;
	}
	if(bFlag)
	{
		cmcf = paint.getColorFilter();
		// 灰度色矩阵
		ColorMatrix colorMatrix = new ColorMatrix();
		colorMatrix.setSaturation(0);
		ColorMatrixColorFilter colorMatrixFilter = new ColorMatrixColorFilter(
				colorMatrix);
		paint.setColorFilter(colorMatrixFilter);
	}
	else
	{
		paint.setColorFilter(cmcf);
	}
	isGrayMode = bFlag;
	
}


效果图

colorMatrix.setSaturation(X);

              1                               0.5                                  0

             


你可能感兴趣的:(利用Paint的 setColorFilter 颜色过滤 来实现按钮被按下的效果)