写下这篇文章是不为更好的去理解自定义view机制和原理。
有时候会遇到这种需求,就是一个textview有多行(大于两行),但是只是title和同容不一致,而第二行又需要顶格来,遇到这种情况怎么处理呢?
下面是给出实现效果图:
很好,这个效果图你已经看到了,后面话不多说,直接给出重要代码。
自定义view的 TwoStyleTextView类代码如下:
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.View;
import com.xjtu.yuzhuo.twostyletextview.R;
/**
* Created by yuzhuo on 16/9/2.
*/
public class TwoStyleTextView extends View{
private Context context;
/**
* 内容一行包行多少个字符
*/
private int rowsCount;
/**
* 第一行在哪处开始字符换行
*/
private int enterofIndex;
/**
* 单行的高度
*/
private float textHeight;
/**
* 行数
*/
private int rows;
/**
* title文本
*/
private String mTitleText;
/**
* title文本的颜色
*/
private int mTitleTextColor;
/**
* titel文本的大小
*/
private int mTitleTextSize;
/**
* content文本
*/
private String mContentText;
/**
* content文本的颜色
*/
private int mContentTextColor;
/**
* content文本的大小
*/
private int mContentTextSize;
/**
* 绘制时控制文本绘制的范围
*/
private Rect mtitleBound,mcontentBound,testBound;
private Paint mtitlePaint,mcontentPaint,testPaint;
public TwoStyleTextView(Context context, AttributeSet attrs)
{
this(context, attrs, 0);
this.context = context;
}
public TwoStyleTextView(Context context)
{