2013-07-24 46 views

Trả lời

1

Cách tốt nhất để làm điều này sẽ được chuyển đổi drawable của bạn thành một bitmap:

Bitmap fromDrawable = BitmapFactory.decodeResource(context.getResources(),R.drawable.drawable_resource); 

Và sau đó đảo ngược nó theo:

https://stackoverflow.com/a/4625618/1154026

Và sau đó trở lại có thể vẽ nếu bạn cần phải:

Drawable invertedDrawable = new BitmapDrawable(getResources(),fromDrawable); 
+0

tôi có thể tranh luận về "cách tốt nhất" ... – TWiStErRob

+0

Các phiếu đã lập luận đủ vì nó là :) – VicVu

29

Sau một số nghiên cứu tôi phát hiện ra rằng dung dịch là chất nhầy h đơn giản hơn tôi nghĩ.

Ở đây là:

/** 
    * Color matrix that flips the components (<code>-1.0f * c + 255 = 255 - c</code>) 
    * and keeps the alpha intact. 
    */ 
    private static final float[] NEGATIVE = { 
    -1.0f,  0,  0, 0, 255, // red 
     0, -1.0f,  0, 0, 255, // green 
     0,  0, -1.0f, 0, 255, // blue 
     0,  0,  0, 1.0f, 0 // alpha 
    }; 

    drawable.setColorFilter(new ColorMatrixColorFilter(NEGATIVE)); 
+1

nhờ làm việc như sự quyến rũ! :) – dreamfighter

Các vấn đề liên quan