Android 中 drawTextOnPath 文字效果演示(中级)
2016-11-22 13:47
381 查看
Android 中 drawTextOnPath 文字效果演示(中级)
Android中Canvas提供了一个drawTextOnPath (String text,Path ath,float hOffset,float vOffset,Pating paint)方法,该方法可以沿着Path绘制文本 其中hOffset参数指定水平偏移 vOffset参数指定垂直偏移
上代码
private static class mytext extends View{
private Paint paint;
private static final String SKY="skyoceanone";
private Path paths[]=new Path[3];
public mytext(Context context) {
super(context);
paint=new Paint();
paint
4000
.setColor(Color.RED);
paint.setAntiAlias(true);
paint.setTextAlign(Paint.Align.RIGHT);//设置从右变开始写字
paint.setTextSize(20);
paths[0]=new Path();
paths[0].moveTo(0,0);
for(int i=0;i<15;i++){//一条线的路径
paths[0].lineTo(i*30, (float)Math.random()*60);
}
paths[1]=new Path();
RectF oval=new RectF(0, 0, 300, 200);
paths[1].addOval(oval, Path.Direction.CCW);//一个椭圆的路径
paths[2]=new Path();
paths[2].addArc(oval, 60, 180);//一个弧线的路径
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
canvas.drawColor(Color.WHITE);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(1);
canvas.translate(0, 20);
//以线路径为列子 如果 hOffset vOffset两个参数 为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);
}
}
转载自:http://skyoceanone.blog.51cto.com/blog/3483859/684685
Android中Canvas提供了一个drawTextOnPath (String text,Path ath,float hOffset,float vOffset,Pating paint)方法,该方法可以沿着Path绘制文本 其中hOffset参数指定水平偏移 vOffset参数指定垂直偏移
上代码
private static class mytext extends View{
private Paint paint;
private static final String SKY="skyoceanone";
private Path paths[]=new Path[3];
public mytext(Context context) {
super(context);
paint=new Paint();
paint
4000
.setColor(Color.RED);
paint.setAntiAlias(true);
paint.setTextAlign(Paint.Align.RIGHT);//设置从右变开始写字
paint.setTextSize(20);
paths[0]=new Path();
paths[0].moveTo(0,0);
for(int i=0;i<15;i++){//一条线的路径
paths[0].lineTo(i*30, (float)Math.random()*60);
}
paths[1]=new Path();
RectF oval=new RectF(0, 0, 300, 200);
paths[1].addOval(oval, Path.Direction.CCW);//一个椭圆的路径
paths[2]=new Path();
paths[2].addArc(oval, 60, 180);//一个弧线的路径
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
canvas.drawColor(Color.WHITE);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(1);
canvas.translate(0, 20);
//以线路径为列子 如果 hOffset vOffset两个参数 为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);
}
}
转载自:http://skyoceanone.blog.51cto.com/blog/3483859/684685
相关文章推荐
- Android 中 drawTextOnPath 文字效果演示(中级)
- Android 中 drawTextOnPath 文字效果演示(中级)
- Android开发:canvas.drawTextOnPath()无效----Android4.03的又一个bug!!!!(关于Canvas绘制的方方面面)
- Android开发:canvas.drawTextOnPath()无效----Android4.03的又一个bug!!!!(关于Canvas绘制的方方面面) .
- Android之 drawTextOnpath
- Android开发:canvas.drawTextOnPath()无效
- android canvas drawText()文字居中效果
- Android 中关于PathEffect子类的效果(中级)
- android.graphics(2) - Path, drawPath, moveTo, lineTo, addRect, addCircle, addOval, addArc, drawText, drawTextOnPath
- Android_canvas.drawTextOnPath()无效
- Android中Canvas中drawPath或drawTextOnPath画不出来bug总结
- Android闪动的文字效果
- 学徒浅析Android开发:第十讲——文字剪切效果
- Android 带文字的进度条,文字颜色随进度条的增加而渐变的效果
- Android 给View添加重复的文字水印背景 类似钉钉通讯录的背景效果
- Android通过Path实现搜索按钮和时钟复杂效果
- 浅谈android的跑马灯效果(文字滚动)
- android中画文字的换行 办法(对于遇到canvas.drawText(String s )无法实现换行问题的解决)
- Android文字的阴影效果
- android文字阴影效果设置