androidimageviewtint

How to set tint for an image view programmatically in android?


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 newer solution in his answer here, but his solution requires 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);