Android原生的TextView,遇到中文和数字或者中文和英文一起混排的时候,会出现自动换行的现象。本来第一行还有很多空间可以显示,却莫名其妙地换行显示。
解决思路采用的是自定义view,挨个画字符,一个一个吧文字画出来
package com.boc.mcc_ams.view.widget;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;
import com.boc.mcc_ams.R;
public class MyTextView extends View {
//内容填充画笔
private Paint contentPaint;
//标准的字体颜色
private String contentNormalColor = "#737373";
//有焦点的字体颜色
private String contentFocuedColor = "#333333";
//控件宽度
private int viewWidth = 0;
//控件高度
private int viewHeight = 0;
//标准的字的样式
public static final int TEXT_TYPE_NORMAL = 1;
//控件获取焦点的时候进行的处理
public static final int TEXT_TYPE_FOCUED = 2;
//默认是标准的样式
private int currentTextType = TEXT_TYPE_NORMAL;
//默认当前的颜色
private String textColor = "#333333";
//字体大小
private int textSize = 40;
//内容
private String mText = "测试的文字信息";
//最小view高度
private float minHeight = 0;
//最小view宽度
private float minWidth = 0;
//行间距
private float lineSpace;
//最大行数
private int maxLines = 0;
//文字测量工具
private Paint.FontMetricsInt textFm;
///真实的行数
private int realLines;
//当前显示的行数
private int line;
//在末尾是否显示省略号
private boolean showEllipsise;
//文字显示区的宽度
private int textWidth;
//单行文字的高度
private int signleLineHeight;
priva