我制作了一个自定义View,使用Canvas.drawText()绘制一些SpannableString。
当文本包含我制作的表情符号时,我调用SpannableString.setSpan() (我不喜欢默认风格的表情符号)。我发现Canvas.drawText()没有绘制我设置的广度,而是绘制默认样式的表情符号。我试图调用TextView.setText()传递相同的SpannableString,它可以工作。我想使用Canvas来绘制性能文本(否则,在ListView中滚动会导致严重的性能问题)。如何用SpannableString绘制Canvas
对不起我的英语很差,我不是以英语为母语的人。谢谢你的提前!
编辑:实际上,我做这个自定义View是为了显示文本转换的动画。几个文本将横穿屏幕水平。我遇到的问题是,TextView的绘图方法造成了太多的时间,动画看起来很糟糕。所以我想直接用Canvas绘制文本。遗憾的是,我切换到了StaticLayout,仍然发现动画很不稳定。
发布于 2016-06-12 03:50:29
您可以尝试将Spannable添加到StaticLayout并将其绘制到Canvas中。
就像这样:
StaticLayout layout = new StaticLayout(yourSpannable, yourPaint,
yourCanvas.getWidth(), Alignment.ALIGN_NORMAL, 1, 0, false);
layout.draw(yourCanvas);https://stackoverflow.com/questions/37770493
复制相似问题