带有图标的可跨文本文本显示错误的图标颜色

时间:2015-11-11 12:30:17

标签: android spannable

在我们的项目中,我们通过带有彩色图标的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;
    }

0 个答案:

没有答案