StaticLayout实现文本绘制自动换行代码,使用Canvas的drawText绘制文本是不会自动换行的,即使一个很长很长的字符串,drawText也只显示一行,超出部分被隐藏在屏幕之外。可以逐个计算每个字符的宽度,通过一定的算法将字符串分割成多个部分,然后分别调用drawText一部分一部分的显示, 但是这种显示效率会很低。
使用Canvas的drawText绘制文本是不会自动换行的,即使一个很长很长的字符串,drawText也只显示一行,超出部分被隐藏在屏幕之外。可以逐个计算每个字符的宽度,通过一定的算法将字符串分割成多个部分,然后分别调用drawText一部分一部分的显示, 但是这种显示效率会很低。
StaticLayout是android中处理文字换行的一个工具类, StaticLayout 已经实现了文本绘制换行处理,下面是如何使用 StaticLayout 的例子:
package com.example.amdroidstaticlayoutdemo;import android.support.v4.app.Fragment;import android.text.Layout.Alignment;import android.text.StaticLayout;import android.text.TextPaint;import android.app.Activity;import android.content.Context; import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Paint.Style;import android.os.Bundle;import android.util.AttributeSet;i