有什么办法可以将位图转换为棕褐色?
我知道要转换为grayScale是在ColorMatrix中设置setSaturation。
但是棕褐色呢?

最佳答案

如果您有图像实例,则可以使用ColorMartix在棕褐色中进行绘制。让我描述一下如何使用Drawable做到这一点。

public static void setSepiaColorFilter(Drawable drawable) {
  if (drawable == null)
    return;

  final ColorMatrix matrixA = new ColorMatrix();
  // making image B&W
  matrixA.setSaturation(0);

  final ColorMatrix matrixB = new ColorMatrix();
  // applying scales for RGB color values
  matrixB.setScale(1f, .95f, .82f, 1.0f);
  matrixA.setConcat(matrixB, matrixA);

  final ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrixA);
  drawable.setColorFilter(filter);
}

样本项目已从Bitbucket移到GitHub。请检查Release section以下载APK二进制文件进行测试,而不进行编译。

10-06 09:21