首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有SpannableString的安卓画布SpannableString

带有SpannableString的安卓画布SpannableString
EN

Stack Overflow用户
提问于 2016-06-12 03:35:52
回答 1查看 2.5K关注 0票数 3

我制作了一个自定义View,使用Canvas.drawText()绘制一些SpannableString

当文本包含我制作的表情符号时,我调用SpannableString.setSpan() (我不喜欢默认风格的表情符号)。我发现Canvas.drawText()没有绘制我设置的广度,而是绘制默认样式的表情符号。我试图调用TextView.setText()传递相同的SpannableString,它可以工作。我想使用Canvas来绘制性能文本(否则,在ListView中滚动会导致严重的性能问题)。如何用SpannableString绘制Canvas

对不起我的英语很差,我不是以英语为母语的人。谢谢你的提前!

编辑:实际上,我做这个自定义View是为了显示文本转换的动画。几个文本将横穿屏幕水平。我遇到的问题是,TextView的绘图方法造成了太多的时间,动画看起来很糟糕。所以我想直接用Canvas绘制文本。遗憾的是,我切换到了StaticLayout,仍然发现动画很不稳定。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-12 03:50:29

您可以尝试将Spannable添加到StaticLayout并将其绘制到Canvas中。

就像这样:

代码语言:javascript
复制
StaticLayout layout = new StaticLayout(yourSpannable, yourPaint,
        yourCanvas.getWidth(), Alignment.ALIGN_NORMAL, 1, 0, false);
layout.draw(yourCanvas);
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37770493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档