使用canvas画字符时,常常遇到字符很长,不会换行的问题.

解决办法:

使用StaticLayout这个类.

mCurrentPaint=newTextPaint();

mCurrentPaint.setColor(Color.GREEN);

mCurrentPaint.setTextAlign(Align.CENTER);

mCurrentPaint.setTextSize(30);

StaticLayout currentLayout =newStaticLayout(currentLine,mCurrentPaint,mViewWidth/ 2,

Alignment.ALIGN_NORMAL, 1.5f, 0f,false);

canvas.translate(mViewWidth/ 2,mViewHeight/ 2);

currentLayout.draw(canvas);

androidStaticLayout参数解释

StaticLayout(CharSequence source, int bufstart, int bufend,

TextPaint paint, int outerwidth,

Alignment align,

float spacingmult, float spacingadd,

boolean includepad,

TextUtils.TruncateAt ellipsize, intellipsizedWidth)

1.需要分行的字符串

2.需要分行的字符串从第几的位置开始

3.需要分行的字符串到哪里结束

4.画笔对象

5.layout的宽度,字符串长度超出给定宽度时自动换行。

6.layout的对其方式,有ALIGN_CENTER, ALIGN_NORMAL, ALIGN_OPPOSITE 三种。

7.相对行间距,相对字体大小,1.5f表示行间距为1.5倍的字体高度。

8.在基础行距上添加多少

实际行间距等于这两者的和。

9.参数未知

10.从什么位置开始省略

11.超过多少开始省略

注意:

1.需要指出的是这个layout是默认画在Canvas的(0,0)点的,如果需要调整位置只能在draw之前移Canvas的起始坐标

canvas.translate(x,y);

2.当字符串中用空格时字符串也会自动换行;(可以根据业务需求把空格换成其他的字符代替比如“/”,":" 等)

android 画字体并换行,android 使用canvas画字符时换行(用TextPaint实现,Paint不易实现)...相关推荐

  1. android text字体居中显示,Android Canvas的drawText()和文字居中方案

    自定义View是绘制文本有三类方法 // 第一类 public void drawText (String text, float x, float y, Paint paint) public vo ...

  2. android 测量字体宽高,Android中测量Text的宽度和高度

    @(Android技术文章) 个人博客地址: 斯科特安的时间 Android中,在自定义View中通过Canvas绘制文字时,经常需要测量文字的宽度和高度. Paint.measureText (测量 ...

  3. android+设置字体行高,android textview设置字体的行距和字间距

    android textview设置字体的行距和字间距 字间距 textView有一个属性android:textScaleX是调节字间距的,它的值是一个float型.查看源代码,默认textView ...

  4. android textview 字体颜色设置,Android textview 设置不同的字体大小和颜色

    在实际应用中,需要将一个字符串已不同的颜色,字体显示出来.当然完全可以通过不同textview拼接出来.也可以通过一个textview来展示. 步骤如下: 1.定义不同style . 不妨如下定义2个 ...

  5. android灰字体什么意思,Android 6.0状态栏使用灰色文字和图标

    Android StatusBar中的字体和图标默认都是白色的,但是Android在6.0之前是没有办法更改这个颜色, 在Android 6.0中提供了一个SYSTEM_UI_FLAG_LIGHT_S ...

  6. android html 字体颜色代码,Android TextView通过解析html显示不同颜色和大小

    先贴一张效果图 效果 介绍 通过SpannableString.SpannableStringBuilder可以很方便的给TextView加上各种各样的样式,比如不同的颜色和大小,这里就不多说了,具体 ...

  7. python程序、画一个笑脸_如何使用canvas画一个微笑的表情(代码示例)

    本篇文章给大家带来的内容是关于如何使用canvas画一个微笑的表情(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 实习期间让我用canvas画一个表情,比较简单,话不多说 ...

  8. 用python画月亮和星空_用canvas画一轮明月,夜空与流星

    今天是中秋节,于是突发奇想,欸不如用canvas来画一画月亮吧. 于是一副用canvas画出的星空就这样诞生了. 在这里我用了ES6语法,星星,月亮和流星都单独写成了一个module. 于是我把js一 ...

  9. php画圆 锯齿,优雅的解决canvas画圆锯齿问题

    canvas 解决canvas画圆锯齿问题 之前做一各项目需要画一个饼图,于是使用HTML5的canvas元素画出来的.一看在移动端手机上测试都发现画图有一点锯齿明显问题, 1 效果如下 代码如下 v ...

最新文章

  1. 微信公众号token 验证
  2. IntelliJ Idea解决Could not autowire. No beans of 'xxxx' type found的错误提示
  3. 内网网段范围_局域网中多网段的划分
  4. python中deepcopy函数_python – copy.deepcopy使用自定义的__new __()方法在对象上引发TypeError...
  5. jquery 中 fn.apply(this, arguments)是什么函数?有什么作用?能举个例子吗
  6. C#中的Using的用法
  7. Angular单元测试遇到的错误消息:Uncaught Error - Cannot find module tslib
  8. mysql的索引的作用_数据库索引的作用,优点和缺点
  9. awr报告分析 mysql_AWR报告的生成和简单分析方法
  10. oracle primavera p6 下载,【项目管理软件套装】Oracle Primavera P6 Enterprise
  11. Linux生态ox版本,从折腾说Linux生态圈
  12. java sftp mget_总结三种Shell脚本编程中避免SFTP输入密码的方法
  13. 蓝桥杯dfs搜索专题
  14. easyui框架中动态改变表头
  15. Linux学习之路-基础命令、管道、软连接【3】---20171120
  16. Eplan绘图软件:EPLAN 中的项目结构
  17. 一些外汇交易专业术语
  18. html5诊断报告,网站诊断报告(模板).doc
  19. Linux基础入门-2
  20. js 生成唯一uuid

热门文章

  1. [转]我们这么努力,也不过是为了成为一个普通人。
  2. 17、Java 的基类(Object 类)的方法介绍
  3. shell终端多目录间快速cd工具
  4. error: #error “Please include Eigen/Geometry instead of including headers inside the src directory d
  5. 微信小程序集成jenkins自动打码
  6. 【胖虎的逆向之路】03——Android一代壳脱壳办法罗列实操
  7. FAQ:Docker和K8s部署常见问题汇总(持续更新)
  8. 美团点评2017秋招笔试真题-安全工程师卷
  9. 0.0.1 NODEMCU-ESP8266-12F VER 0.1CH340G开发版V3 4线oled0.96寸屏天气时钟日记
  10. 惯导IMU和惯导INS