【带有SpannableString的Android Canvas drawText】宁可枝头抱香死,何曾吹落北风中。这篇文章主要讲述带有SpannableString的Android Canvas drawText相关的知识,希望能为你提供帮助。
我使用View
制作了一个定制的Canvas.drawText()
来绘制一些SpannableString
s。
当文本包含我制作的表情符号时,我会调用SpannableString.setSpan()
(我不喜欢默认风格的表情符号)。我发现Canvas.drawText()
没有绘制我设置的范围,而是绘制了默认风格的表情符号。我试着打电话给TextView.setText()
通过相同的SpannableString
,它的工作原理。我想使用Canvas
来绘制性能文本(否则,在TextView
中滚动时新增几个ListView
s会导致严重的性能问题)。我怎么能用SpannableString
画Canvas
?
抱歉我的英语不好,我不是母语人士。谢谢你提前!
编辑:其实我做了这个自定义View
,以显示文本转换的动画。几个文本将横向穿过屏幕。我遇到的问题是TextView
的绘制方法导致太多时间,动画看起来很糟糕。所以我想用Canvas
直接绘制文本。可悲的是,我切换到StaticLayout
仍然发现动画是生涩的。
答案您可以尝试将Spannable
添加到StaticLayout
并将其绘制到Canvas
。
像这样的东西:
StaticLayout layout = new StaticLayout(yourSpannable, yourPaint, yourCanvas.getWidth(),
Alignment.ALIGN_NORMAL, 1, 0, false);
layout.draw(yourCanvas);
推荐阅读
- Google App Engine Docker容器502错误网关
- Linux到Android蓝牙网络共享(PAN)
- Android(在服务中使用网络)
- 邮件发送到.herokuapp.com域
- Facebook AppRequests +浏览器兼容性
- Android中SVG和VectorDrawable的区别
- 有人可以帮我理解appendChild方法实际发生了什么吗()
- 线程“JavaFX Application Thread”中的异常java.lang.NoClassDefFoundError
- Android GSON使用POST方法