Penso che tu abbia bisogno di un hue shifter. In tal caso, utilizzando il ColorFilterGenerator
proposto in Understanding the Use of ColorMatrix and ColorMatrixColorFilter to Modify a Drawable's Hue basta fare:
view.getBackground().setColorFilter(ColorFilterGenerator.adjustHue(180));
Il risultato è simile al seguente (tonalità ruotato di 180 gradi):

Nota: Tutto il merito per questa risposta deve andare a @Richard Lalancette per la sua risposta fantastica alla domanda che ho collegato
Aggiornamento dal comm ents:
Come è necessario specificare il colore di destinazione, è possibile calcolare i valori HSV di origine e di destinazione e utilizzare lo ColorFilterGenerator
per spostare la tonalità. Ad esempio:
// Your source color (The RGB color from your original image is 255,85,78)
float[] hsvSource = new float[3];
Color.RGBToHSV(255, 85, 78, hsvSource);
// The color whose hue you want to achieve (green for example)
float[] hsvTarget = new float[3];
Color.RGBToHSV(0, 200, 18, hsvTarget);
view.getBackground().setColorFilter(ColorFilterGenerator.adjustHue(hsvTarget[0] - hsvSource[0]));
Si noti che questo approccio prende in considerazione solo i valori di tonalità dei colori per spostarlo.
Aggiornamento dai commenti: risposta meravigliosa
@Jared di Rummler (Understanding the Use of ColorMatrix and ColorMatrixColorFilter to Modify a Drawable's Hue) prende la vostra drawable come parametro in modo non è necessario specificare il colore di origine:
view.getBackground().setColorFilter(ColorFilterGenerator.from(view.getBackground()).to(Color.GREEN));
uso 'PorterDuff .Mode.CLEAR' –
Provalo ora. – AndyRoid
Rende il mio drawable completamente trasparente – AndyRoid