Skia 和 Android Paint 绘图对象及其使用或文档
Posted
技术标签:
【中文标题】Skia 和 Android Paint 绘图对象及其使用或文档【英文标题】:Skia and Android Paint drawing objects and their use or documentation 【发布时间】:2010-02-08 18:43:00 【问题描述】:有谁知道 android 使用的 Skia 绘图库的良好文档?
主 Canvas 对象几乎没有任何状态,所以我特别考虑可以嵌入到 Paint 对象中的对象。我已经通过反复试验研究了如何使用一些 ColorFilters 并使用 ColorMatrixColorFilter 制作了很酷的效果。现在我也有了我想要的 LinearGradient 着色器的阴影。我想我了解 PathEffects 并对 XferModes 有一些想法。 MaskFilters 和 Rasterizers 对我来说仍然完全不透明。但反复试验并不是理解复杂库的好方法。
我主要担心的是 Android 文档根本没有讨论 2d 图形及其使用方法。甚至类 javadocs 也经常不解释该类在做什么。实际功能都在 Skia C 代码中,我可以得到,但它也缺少文档。我看过一些很酷的演示,但 Google 很少解释它们是如何完成的。
理解这些东西的唯一方法是实验和阅读 C 代码吗?效率和最佳实践如何? Davlik/Android VM 对内存分配很敏感,有时速度很慢,我担心我没有以最好的方式做事。
【问题讨论】:
【参考方案1】:Skia 有自己的 google 代码项目站点,您可以在其中找到一些高级概述。
可以通过项目站点中的此链接浏览内联文档
http://skia.googlecode.com/svn/trunk/docs/html/hierarchy.html
您可以加入讨论邮件列表。设计师和社区将回答问题。
另一个很好的参考是来自 Apple 的令人惊讶的。 Apple QuickDraw GX 文档解释了很多 2D 矢量图形概念,可以很好地应用于 Skia。
【讨论】:
【参考方案2】:Android canvas API 确实有两个不同的实现,一个是 Skia,另一个是 OpenGL ES。后面的实现就是所谓的 HWUI。
无论实现如何,了解绘制过程底层的管道对于了解如何使用画布 API 至关重要。
以下是迄今为止描述管道的最佳文档。你一定会发现它很有用。
http://www.xenomachina.com/2011/05/androids-2d-canvas-rendering-pipeline.html
【讨论】:
以上是关于Skia 和 Android Paint 绘图对象及其使用或文档的主要内容,如果未能解决你的问题,请参考以下文章