androidimageviewtint

How can I set tint for an image view programmatically in Android?


I need to set tint for an image view... I am using it the following way:

imageView.setColorFilter(R.color.blue, android.graphics.PorterDuff.Mode.MULTIPLY);

But it doesn't change...


Solution

  • UPDATE:
    @ADev has a newer solution in his answer here, but his solution requires a newer support library, 25.4.0 or above.


    You can change the tint quite easily in code via:

    imageView.setColorFilter(Color.argb(255, 255, 255, 255)); // White Tint

    If you want color tint then

    imageView.setColorFilter(ContextCompat.getColor(context, R.color.COLOR_YOUR_COLOR), android.graphics.PorterDuff.Mode.MULTIPLY);
    

    For Vector Drawable

    imageView.setColorFilter(ContextCompat.getColor(context, R.color.COLOR_YOUR_COLOR), android.graphics.PorterDuff.Mode.SRC_IN);