android - DrawableCompat setTint not working on API 19 -
i using drawablecompat tinting drawable below , tinting doesn't seem working on api 19. using support lib version 23.3.0
drawable drawable = textview.getcompounddrawables()[drawableposition]; if (drawable != null) { if (build.version.sdk_int >= build.version_codes.lollipop) { drawable.settint(color); } else { drawablecompat.settint(drawablecompat.wrap(drawable), color); } }
i had same problem. combined posts in https://stackoverflow.com/a/30928051 , tried apis 17, 19, 21, 22, 23 , n preview 3 supportlib 23.4.0 find solution.
even if mentioned, compat-class use filter pre-lollipop-devices (see https://stackoverflow.com/a/27812472/2170109), it's not working.
now, check api myself , use following code, working on tested apis (for 17 , up).
// https://stackoverflow.com/a/30928051/2170109 drawable drawable = drawablecompat.wrap(contextcompat.getdrawable(context, r.drawable.vector)); image.setimagedrawable(drawable); /* * need use filter | https://stackoverflow.com/a/30880522/2170109 * (even if compat should use pre-api21-devices | https://stackoverflow.com/a/27812472/2170109) */ int color = contextcompat.getcolor(context, r.color.yourcolor); if (build.version.sdk_int >= build.version_codes.lollipop) { drawablecompat.settint(drawable, color); } else { drawable.mutate().setcolorfilter(color, porterduff.mode.src_in); }
Comments
Post a Comment