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);
}
}
更多相关文章
- android存储路径问题
- 安卓入门及界面带参数跳转
- Android的参数大致分成两块:系统服务参数和平台系统信息。
- WebView与Javascript交互(相互调用参数、传值)
- Android Studio 3.2.2- Android SDK 安装包报错 无法 安装 路径
- Android 获取View的位置参数:x,y和相对父容器的偏移量以及中心点
- android 文档路径获取
- I2C-Tools 4.0使用说明及android平台移植,提供源码下载路径
- android 获取系统默认路径