Android中canvas.drawText()无法使用\r\n换行的解决方案
来源:互联网 发布:阅读题软件 编辑:程序博客网 时间:2024/05/01 03:55
今天在自定义View的时候使用到了canvas.drawText()来绘制文字,但是出现了使用\r\n和\n都无法换行的问题。百度了一下,发现了网友主要有的解决方案,使用TextPaint.
具体使用如下:
TextPaint textPaint = new TextPaint();//此可以在View的初始化中进行String drawString = "testString";StaticLayout staticLayout = new StaticLayout(drawString,textPaint,canvas.getWidth(),Aligment.ALIGN_NORMAL,1.0F,0.0F,true);canvas.translate(startX,startY);staticLayout.draw(textPaint);
具体可参见网页Draw multi-line text to Canvas
但是这种方式,会提示不能onDraw中声明类,因为onDraw可能会多次调用,这样会比较消耗内存。但是上面那个网页中,也给出了使用canvas解决的方案。由于我们绘制文字的时候一般都会有文字的大小,因此可以使用下面这段代码:
canvas.drawText("Test1",getPaddingLeft() + index * averageWidth, (float) (height- score * 1.0 / maxScore * height / 2 + textSize),paint);canvas.drawText("Test2",getPaddingLeft() + index * averageWidth, (float) (height- score * 1.0 / maxScore * height / 2 - textSize),paint);
上面中的其他参数是自己代码中定位用的参数,可以忽略,换成自己的就行.
但是经过这种测试这种不同行之间有空隙,不是属于完美的换行,需要改进。但是相对于TextPaint来说,个人认为更好一些。
0 0
- Android中canvas.drawText()无法使用\r\n换行的解决方案
- android canvas drawText \r\n 换行
- android中画文字的换行 办法(对于遇到canvas.drawText(String s )无法实现换行问题的解决)
- android中画文字的换行 办法(对于遇到canvas.drawText(String s )无法实现换行问题的解决
- android中画文字的换行 办法(对于遇到canvas.drawText(String s )无法实现换行问题的解决)
- android中画文字的换行 办法(对于遇到canvas.drawText(String s )无法实现换行问题的解决)
- Android Canvas.drawText(...)自动换行
- canvas drawText如何换行
- android canvas.drawText()的研究
- android canvas.drawText()的研究
- android 二维码扫描界面 canvas drawText 换行居中
- php代码中使用换行及(\n或\r\n和br)的应用
- Android 中Canvas.drawText实现文字居中
- Canvas的drawText绘制文本不自动换行的解决
- HTML5中Canvas的drawText对齐细节
- canvas无法使用rem单位的解决方案
- android canvas drawText 使用说明
- Android-Canvas.drawText()详解
- UVA - 11636 Hello World!(水题)
- CSS实战手册_阅读笔记09_margin padding border
- ANDROID SDK 更新
- Android利用泛型和反射来实现对数据库的操作--SqlHelper
- 借助 Adobe Scout 理解 Flash Player
- Android中canvas.drawText()无法使用\r\n换行的解决方案
- 2014-11-13
- 下拉列表的样式
- Leetcode: Max Points on a Line
- WorksheetFunction 成员 (Excel)
- Yii1.1 实现简单restful 框架
- caffe源码分析--Blob类代码研究
- 类模板声明与定义为什么不能分离
- git 命令纪要