一.drawText的通常用法:
private Paint mPaint;
private Rect mTextBound = new Rect();//包裹text的矩形
mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mPaint.setTextSize(mTextSize);
mTextWidth = (int) mPaint.measureText(mText);
mPaint.getTextBounds(mText, 0, mText.length(), mTextBound);//得到矩形范围
//x,y具体指哪个位置呢
canvas.drawText(mText, x, y, mPaint);
先上图为敬(图是盗的o(╥﹏╥)o):
从图中可以看出x和y是Baseline的黄色原点的坐标
一般我们设置drawText的x:
int mRealWidth = getMeasuredWidth() - getPaddingLeft() - getPaddingRight();
int mTextStartX = mRealWidth / 2 - mTextWidth / 2;
设置drawText的y:
int y = mTextBound.height() / 2 + getMeasuredHeight()/2;