0

我试图在 a 中隐藏一个笑脸SpannableStringBuilder(在 a 中使用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]);

潜在地,我可以重新绘制可绘制对象,但这是一项昂贵的操作。为什么drawable不更新?我错过了什么?

提前致谢。

4

1 回答 1

0

好的,在我的基本可绘制类setAlpha中,我实现了更改绘制对象的方法。之后,我重新验证了可绘制对象所在的视图。之后,draw我的可绘制类中的方法被执行并且 alpha 值发生了变化

于 2015-03-16T11:29:45.903 回答