java - Android PixelXorXfermode 已弃用

标签 java android android-graphics

我有一个旧库,使用 PixelXorXfermode类(class)。但它在 API 17 中已弃用,并从 API 24 中删除。

paint.setXfermode(new PixelXorXfermode(-1));

我试图查看它的 source code并看到它调用 native 方法。

private static native long nativeCreate(int opColor);

这个类(class)有其他选择吗?或者有什么办法可以移植吗?

最佳答案

我找到了一个很好的教程here通过大量示例解释了如何使用 ColorFilters。 "invert" sample似乎完成了与 PixelXorXfermode 相同的事情。

public Bitmap getBitmap(Bitmap original)
{
    Bitmap bitmap = Bitmap.createBitmap(original.getWidth(), 
    original.getHeight(), Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);

    Paint paint = new Paint();
    paint.setColorFilter(new ColorMatrixColorFilter(getColorMatrix()));
    canvas.drawBitmap(original, 0, 0, paint);

    return bitmap;
}

private ColorMatrix getColorMatrix() {
    return new ColorMatrix(new float[] {
        -1,  0,  0,  0, 255,
        0, -1,  0,  0, 255,
        0,  0, -1,  0, 255,
        0,  0,  0,  1,   0
    });
}

关于java - Android PixelXorXfermode 已弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40561829/

相关文章:

具有子类唯一性和多态性的Java引用类型

java - 如何使用netty从服务器向客户端发送确认?

Android圆角布局bug

android - gethostbyname 失败并出现错误 111 (ECONNREFUSED)

java - 在 Android 中手动添加外部库时无法导入语句

java - JPype 头痛

android - Android 应用程序中的 SQLite-sync 同步框架

android - 为什么在缩放的 GLES20RecordingCanvas 和简单的 Canvas 上绘制的路径具有不同的质量?

android - 如何使用 Google 的 Face API 检测角/中心 X、Y 坐标?

android - 如何使用抗锯齿有效地调整图像大小?