我试图隐藏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);
也没用。
下一个代码确实有效,但它没有保留drawable的大小,所以笑脸周围的文字开始“跳”,这是不正确的。
ImageSpan[] spans = spannable.getSpans(0, length, ImageSpan.class);
spannable.removeSpan(spans[0]);
潜在地,我可以重新绘制可绘制的,但这是一项昂贵的操作。为什么不绘制可更新?我错过了什么?
提前致谢。
答案 0 :(得分:0)
好的,在我的base drawable类中,我实现了setAlpha
方法,在其中我更改了paint对象。之后我重新验证了drawable的视图。之后,我的drawable类中的draw
方法被执行并且alpha值改变