drawTextOnPath的问题

asd8222687 2012-02-29 10:28:21
需要在path上写一段文字,path能够显示,文字出不来,怎么回事呢

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
addContentView(new mytext(this), new LayoutParams(600, 800));
}

private static class mytext extends View {
private Paint paint;
private Path paths ;

public mytext(Context context) {
super(context);
paint = new Paint();
paint.setColor(Color.RED);
paint.setAntiAlias(true);
paint.setTextAlign(Paint.Align.RIGHT);// 设置从右变开始写字
paint.setTextSize(20);
paths = new Path();
paths.moveTo(0, 0);
for (int i = 0; i < 15; i++) {// 一条线的路径
paths.lineTo(i * 30, (float) Math.random() * 60);
}
}
@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);
canvas.drawPath(paths, paint);
canvas.drawTextOnPath("dgjdghjdghj", paths, 0, 20, paint);
}
}

编译版本是4.0,手机系统版本是4.0.3,求指教,另外,如何实现以下功能:
当文字长度小于path长度时重复显示文字,直到文字充满path
...全文
652 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanzi1225627 2013-02-16
  • 打赏
  • 举报
回复
我也遇到这个问题了,解决方法除了5楼的外,可以在view的构造函数里设置this.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 具体可以参考这里:http://blog.csdn.net/yanzi1225627/article/details/8583066
jianjia021 2012-08-16
  • 打赏
  • 举报
回复
4.0估计开启了硬件加速功能,drawTextOnPath函数不支持硬件加速。在Manifest文件中禁止硬件加速就可以了。 <application android:hardwareAccelerated="false"
asd8222687 2012-03-01
  • 打赏
  • 举报
回复
怎么实现给一个固定的字符串,让它充满任何路径
asd8222687 2012-03-01
  • 打赏
  • 举报
回复
嗯,我换成2.2的就可以用了。。不知道为什么4.0的用不了
danielinbiti 2012-02-29
  • 打赏
  • 举报
回复
刚试了一下,这段代码可以的
asd8222687 2012-02-29
  • 打赏
  • 举报
回复
在线等啊,各位大能速速现身啊

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧