2016-11-12 2 views
2

私はPixelXorXfermodeクラスを使用していた古いライブラリを持っています。しかし、それはAPI 17で非推奨とAPI 24.私はそのsource codeを見て、それがネイティブメソッドを呼び出す参照しようとしたAndroid PixelXorXfermodeは非推奨です

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

から削除されました。

private static native long nativeCreate(int opColor); 

このクラスの代替手段はありますか?またはそれを移植する方法はありますか?

+0

回避策はありますか? – Amber

答えて

1

多くの例を持つColorFiltersの使い方を説明した良いチュートリアルhereが見つかりました。 "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 
    }); 
}