我试图在SpannableStringBuilder
中隐藏一个笑脸(用于DynamicLayout
)。起初我试过
ImageSpan[] spans = spannable.getSpans(0, length, ImageSpan.class);
spans[0].getDrawable().setAlpha(0);
它没有用。我也试过
ImageSpan[] spans = spannable.getSpans(0, length, ImageSpan.class);
spans[0].getDrawable().setVisible(false, true);
也没用。
下一个代码确实有效,但它不保留可绘制对象的大小,因此笑脸周围的文本开始"跳跃",这是不正确的。
ImageSpan[] spans = spannable.getSpans(0, length, ImageSpan.class);
spannable.removeSpan(spans[0]);
有可能,我可以重新绘制可绘制对象,但这是一项昂贵的操作。 为什么可绘制对象不更新?我错过了什么?
提前谢谢。
好的,在我的基本可绘制类中,我实现了更改 paint 对象的 setAlpha
方法。之后,我重新验证了可绘制对象的视图。之后,我的可绘制类中的 draw
方法被执行并且 alpha 值发生变化