2013-07-24 10 views

Antwort

1

Der beste Weg, dies zu tun wäre, um Ihre ziehbar in eine Bitmap zu konvertieren:

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

Und dann invertieren gemäß:

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

Und dann, wenn Sie auf eine ziehbar zurück muss:

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

ich über den „besten Weg“ könnte argumentieren ... – TWiStErRob

+0

Die Stimmen genug argumentiert haben, wie es ist :) – VicVu

29

Nach ein paar Recherchen fand ich heraus, dass die Lösung muc ist Ich bin einfacher als ich dachte.

Hier ist sie:

/** 
    * 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

Dank wie Charme zu arbeiten! :) – dreamfighter