2016-11-12 92 views
2

我有一个使用PixelXorXfermode类的旧库。但它是在API 17弃用,从API 24Android PixelXorXfermode已弃用

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

我想看看它的source code,看看它调用本地方法去除。

private static native long nativeCreate(int opColor); 

这个班有什么其他选择吗?或者有什么方法来移植它?

+0

您是否找到解决办法? – Amber

回答

1

我找到了一个很好的教程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 
    }); 
}