I need to find a way to change the color of bitmap in Android. I need to replace/change colors of oval image smoothly in my application depending on int
value. I ne
getResources().getDrawable( R.drawable.button );
is now deprecated. Can also do it this way:
((ImageView) findViewById(R.id.my_icon))
.setColorFilter(new LightingColorFilter(Color.BLUE, Color.BLUE));
This is how I solved this issue :
ImageView
with src="@drawable/button"
Drawable
and set ColorFilter
to it and after that use it as src to your declared ImageView
like this :>
Drawable myIcon = getResources().getDrawable( R.drawable.button );
ColorFilter filter = new LightingColorFilter( Color.BLUE, Color.BLUE );
myIcon.setColorFilter(filter);
color.setImageDrawable(myIcon);
Should you this.
Drawable myIcon = getResources().getDrawable( R.drawable.button );
ColorFilter filter = new LightingColorFilter( Color.BLACK, Color.BLACK);
myIcon.setColorFilter(filter);
This solution doesn't work very well for me. In some images the final color was wrong. I use this solution instead:
Drawable myIcon = getResources().getDrawable(R.drawable.your_image);
myIcon.setColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP);
((ImageView)findViewById(R.id.view_to_change)).setImageDrawable(myIcon);
You can use a TransitionDrawable to achieve this - http://developer.android.com/reference/android/graphics/drawable/TransitionDrawable.html