Android开发:canvas.drawTextOnPath()无效
2013-02-28 10:13
519 查看
Android开发:canvas.drawTextOnPath()无效----Android4.03的又一个bug!!!!(关于Canvas绘制的方方面面)
分类: Android开发2013-02-1616:21 184人阅读 评论(1) 收藏 举报
目录(?)[+]
为了实现在透明圆环上绘制字体,查到是用canvas.drawTextOnPath()这个函数。但遗憾的是,我在手机上死活都画不出来字体。用canvas.drawPath()正常,说明path是正确的,但就是drawTextOnPath()无效。在网上搜了一堆关于canvas画图的东西,链接如下:
android截取图片一个圆,得到的图片总是存在锯齿,怎么办?
android
Path、Typeface和绘制弧线
setTypeface方法:设置字体样式
canvas.drawText看不到 字体Canvas、Path 和 Paint 实例 (游戏开发必备)
Android 中 drawTextOnPath 文字效果演示(中级)
图形与图形处理(Path、drawTextOnPath)
怎么实现字符串 90度旋转,使用canvas.drawText()android中使用canvas.drawText函数可否设置旋转
上面这些东西足以把canvas绘制的方方面面讲的很清除了,但我的canvas.drawTextOnPath()就是不中。后来用google查的国外盆有的一篇文章:drawTextOnPath() not working from 4.1.2 to 4.0.3
里面给出的解释是:Answer
drawTextOnPath() was not supported with hardware acceleration until Android 4.1. To work around this problem, simply set a software layer type on your View when running on Android < 4.1.Just call View.setLayerType(View.LAYER_TYPE_SOFTWARE, null). This will force software rendering and fix your problem.
原来这是android SDK的一个bug,在android4.0.3及其以下(其实是4.1版本 以下),drawTextOnPath是无效的,解决方法是在自定义ImageView的构造函数里增加这一句话:
this.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
一切就OK了!
另外还可以在Manifinest里面禁止硬件加速<application android:hardwareAccelerated="false"/>参见http://bbs.csdn.net/topics/380198530。但我不推荐这种方式,这会使所有的view包括程序中的surfaceView都禁止加速了,损失太大。
看来对于程序员,google才是最铁的战友!就一句话费我整整一天时间。。。
-----------------本文系原创,转载请注明作者:yanzi1225627
主:问题的实质是硬件加速,想多了解也可以看这里:http://architecture.riaos.com/?p=3007443
分享到:
上一篇:Android开发:Handler Runnable和Thread之间的区别和联系 应用--------------------看完本篇,从此一览无余!
下一篇:Android开发:如何按back键 彻底的关闭一个应用程序(调用finish()不太奏效)
相关文章推荐
- Android开发:canvas.drawTextOnPath()无效----Android4.03的又一个bug!!!!(关于Canvas绘制的方方面面) .
- Android开发:canvas.drawTextOnPath()无效----Android4.03的又一个bug!!!!(关于Canvas绘制的方方面面)
- Android_canvas.drawTextOnPath()无效
- Android中Canvas中drawPath或drawTextOnPath画不出来bug总结
- 使用Canvas的drawTextOnPath方法实现沿着Path绘制文本
- 【Android】 Canvas、Path 和 Paint 实例 (游戏开发必备)
- canvas的cliprect以及drawTextOnPath,Region.OP
- Android canvas.clipPath无效
- Android 中 drawTextOnPath 文字效果演示(中级)
- 【Android】 Canvas、Path 和 Paint 实例 (游戏开发必备)
- Android 中 drawTextOnPath 文字效果演示(中级)
- 【Android】 Canvas、Path 和 Paint 实例 (游戏开发必备)
- Android软件开发:在Canvas中利用Path绘制基本图形
- Android 中 drawTextOnPath 文字效果演示(中级)
- android.graphics(2) - Path, drawPath, moveTo, lineTo, addRect, addCircle, addOval, addArc, drawText, drawTextOnPath
- canvas.drawPath无效,画不出来
- 【Android】 Canvas、Path 和 Paint 实例 (游戏开发必备)
- Android编程开发之在Canvas中利用Path绘制基本图形(圆形,矩形,椭圆,三角形等)
- Android之 drawTextOnpath
- 【Android】 Canvas、Path 和 Paint 实例 (游戏开发必备)