自定义View之绘制文字

**

基本使用

**

  1. 在初始化方法里创建画笔,设置画笔颜色,不设置默认黑色
	    mTextPaint = new Paint();
        mTextPaint.setColor(Color.WHITE);
  1. 在onDraw方法里绘制文字
canvas.drawText(text,(float) x,(float) y+offset,mTextPaint); 

这里第一个参数是要绘制的文字内容
第二个参数是文字的起始x坐标
第三个参数是文字的起始y坐标
第四个参数是使用的画笔

进阶用法

画笔设置

  • 设置画笔线条粗细
    mPaint.setStrokeWidth(1);
  • 设置文字填充方式
    mPaint.setStyle(Paint.Style.FILL);//填充效果
    mPaint.setStyle(Paint.Style.FILL_AND_STROKE);//填充加苗边
    mPaint.setStyle(Paint.Style.STROKE);//这种方式绘制的文字是空心
  • 设置文字在view中的位置
    mTextPaint.setTextAlign(Paint.Align.CENTER);
    属性有左中右三种
  • 设置文字加粗
    mTextPaint.setFakeBoldText(true);
  • 设置文字立体效果(加阴影)
    mTextPaint.setShadowLayer(2,2,2,Color.BLACK);

绘制方式
canvas.drawTextOnPath(); 延着给定的path路径绘制文字

canvas.drawTextRun();
 api23新增的方法,为了那些需要根据上下文来确定绘制内容的文字,例如阿拉伯文中有些词单独写是一个样,和其他词一起写又是一个样,中文和英文没有此类问题,这个方法用不到
参数说明:
text:要绘制的文字 
start:从那个字开始绘制 
end:绘制到哪个字结束 
contextStart:上下文的起始位置。contextStart 需要小于等于 start 
contextEnd:上下文的结束位置。contextEnd 需要大于等于 end 
x:文字左边的坐标 
y:文字的基线坐标 
isRtl:是否是 RTL(Right-To-Left,从右向左)

猜你喜欢

转载自blog.csdn.net/ligaoyuan8030/article/details/103610921