Android(安卓)中 drawTextOnPath 文字效果演示(中级)
Android中drawTextOnPath文字效果演示(中级)
Android中Canvas提供了一个drawTextOnPath(Stringtext,Pathath,floathOffset,floatvOffset,Patingpaint)方法,该方法可以沿着Path绘制文本其中hOffset参数指定水平偏移vOffset参数指定垂直偏移
上代码
privatestaticclassmytextextendsView{
privatePaintpaint;
privatestaticfinalStringSKY="skyoceanone";
privatePathpaths[]=newPath[3];
publicmytext(Contextcontext){
super(context);
paint=newPaint();
paint.setColor(Color.RED);
paint.setAntiAlias(true);
paint.setTextAlign(Paint.Align.RIGHT);//设置从右变开始写字
paint.setTextSize(20);
paths[0]=newPath();
paths[0].moveTo(0,0);
for(inti=0;i<15;i++){//一条线的路径
paths[0].lineTo(i*30,(float)Math.random()*60);
}
paths[1]=newPath();
RectFoval=newRectF(0,0,300,200);
paths[1].addOval(oval,Path.Direction.CCW);//一个椭圆的路径
paths[2]=newPath();
paths[2].addArc(oval,60,180);//一个弧线的路径
}
@Override
protectedvoidonDraw(Canvascanvas){
//TODOAuto-generatedmethodstub
super.onDraw(canvas);
canvas.drawColor(Color.WHITE);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(1);
canvas.translate(0,20);
//以线路径为列子如果hOffsetvOffset两个参数为0效果如图一会沿着线上走
//参数为0,20则会向下20个像素点如图二
canvas.drawPath(paths[0],paint);
canvas.drawTextOnPath(SKY,paths[0],0,20,paint);
canvas.translate(0,120);
canvas.drawPath(paths[2],paint);
canvas.drawTextOnPath(SKY,paths[2],-30,30,paint);
canvas.translate(0,240);
paint.setStyle(Paint.Style.FILL);
canvas.drawPath(paths[1],paint);
canvas.drawTextOnPath(SKY,paths[1],-30,30,paint);
}
}
更多相关文章
- mybatisplus的坑 insert标签insert into select无参数问题的解决
- Pycharm安装PyQt5的详细教程
- Python技巧匿名函数、回调函数和高阶函数
- python list.sort()根据多个关键字排序的方法实现
- Android命令行启动程序-am命令的使用-纠正网上大部分资料的错误
- android存储路径问题
- Android(安卓)Studio调试native或者service
- Android中的Notification的使用
- Eclipse 不能finish android工程