StaticLayout
来源:互联网 发布:apple watch销售数据 编辑:程序博客网 时间:2024/05/20 19:49
StaticLayout实现文本自动换行
在安卓绘制文本的时候,使用Canvas的drawText绘制文本是不会自动换行的,即使一个很长很长的字符串,drawText也只显示一行,超出部分被隐藏在屏幕之外。可以逐个计算每个字符的宽度,通过一定的算法将字符串分割成多个部分,然后分别调用drawText一部分一部分的显示, 但是这种显示效率会很低。
StaticLayout是android中处理文字换行的一个工具类,StaticLayout已经实现了文本绘制换行处理
private Paint mPaint;private String text = "使用Canvas的drawText绘制文本是不会自动换行的,即使一个很长很长的字符串,drawText也只显示一行,超出部分被隐藏在屏幕之外。可以逐个计算每个字符的宽度,通过一定的算法将字符串分割成多个部分,然后分别调用drawText一部分一部分的显示, 但是这种显示效率会很低";private int with;private TextPaint mTextPaint; private void init() { mPaint = new Paint(); mPaint.setAntiAlias(true); mPaint.setColor(Color.RED); mPaint.setStrokeWidth(30); mPaint.setTextSize(30); //----------- mTextPaint = new TextPaint(mPaint); mTextPaint.setTextSize(30);}@Overrideprotected void onDraw(Canvas canvas) { super.onDraw(canvas); StaticLayout staticLayout = new StaticLayout(text, mTextPaint, with, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false); staticLayout.draw(canvas); canvas.restore();}
只贴出来关键代码;
public StaticLayout(CharSequence source,//表示要绘制的文本内容 TextPaint paint,//TextPaint int width,//canvas 宽度 Layout.Alignment align,//显示样式(正常、居中等) float spacingmult,//相对行间距 float spacingadd,//相对字体大小 boolean includepad)public StaticLayout(CharSequence source, int bufstart, int bufend, TextPaint paint, int outerwidth, Layout.Alignment align, float spacingmult, float spacingadd, boolean includepad)public StaticLayout(CharSequence source, int bufstart, int bufend, TextPaint paint, int outerwidth, Layout.Alignment align, float spacingmult, float spacingadd, boolean includepad, TextUtils.TruncateAt ellipsize, int ellipsizedWidth)
CharSequence source:
0 0
- StaticLayout
- StaticLayout
- StaticLayout
- 文字换行StaticLayout
- android StaticLayout参数解释
- android staticlayout使用讲解
- android staticlayout使用详解
- android staticlayout使用讲解
- StaticLayout的使用
- Error android.text.StaticLayout.calculateEllipsis(StaticLayout.java:783)
- StaticLayout 和TextPaint的学习使用
- 自动换行StaticLayout的简单介绍
- android staticlayout使用讲解,可实现文本绘制换行处理
- Android使用StaticLayout实现文本绘制自动换行
- 自定义控件玩套路以及canvas StaticLayout的使用
- Android 用StaticLayout和SpannableString实现歌词逐字更新
- android TextView不会自动换行怎么办,教你使用staticlayout解决换行
- android Textview 实现展开收缩功能(字符宽度)(StaticLayout)
- 2017.3.23 特别行动队 思考记录
- UI自动化测试的正确打开方式
- mybatis自定义类型转换器
- composer的使用
- caffemodel中的参数及特征的抽取
- StaticLayout
- 遮罩层屏幕禁止滚动
- Extjs closable属性
- 常用菜单开发设计思路
- Struts2初始化配置的问题
- 在pig中嵌入python程序
- Cmake的install与file命令的区别
- 0323
- 路由器基本配置命令