在我们的项目中,我们通过带有彩色图标的Spannable设置组名。当我打开活动时,这很好。然后我进入下一个屏幕,我们有相同的Spannable字符串但具有不同的图标色调。此屏幕也可以正常颜色工作。但是,如果我按下返回按钮并返回上一个活动,它将在图标上显示错误的色调颜色(实际上色调颜色与我返回的屏幕上的颜色相同)。在旧的Android版本上观察到此问题:JellyBean,KitKat。 下面是获取Spannable字符串的函数。
public Spannable getNameSpannable(int iconColor){
ImageSpan lockIcon = new ImageSpan(getTintedDrawable(R.drawable.icon_lock, iconColor), ImageSpan.ALIGN_BASELINE);
Spannable spannableGroupName = new SpannableString(" " + getName());
spannableGroupName.setSpan(lockIcon, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
return spannableGroupName;
}
private Drawable getTintedDrawable(int drawableResource, int color) {
Drawable drawable = DrawableCompat.wrap(App.d(drawableResource));
DrawableCompat.setTint(drawable, App.c(color));
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
return drawable;
}