- 入口
- 通过解析得到SVG
- 将得到的SVG渲染到Picture\Canvas上
1. 入口
1.getFromInputStream(InputStream) : SVG
2.getFromString(String) : SVG
3.getFromResource(Resources, int) : SVG
4.getFromAsset(AssetManager, String) : SVG
1 | // *************** com.caverock.androidsvg.SVG *************** |
2. 通过解析得到SVG
2.1 输入
xml InputStream 或 zip InputStream
2.2 输出
SVG
2.3 XML解析器
SAX
2.4 解析引擎
- SVGParser // 主要引擎 继承自 com.xml.sax.ext.DefaultHandler2
- CCSSVGParser //主要用于解析CSS样式
2.5 解析工具
- NumberParser //解析SVG/Style中 ‘number’元素内容(速度快于系统)
- IntegerParser //解析SVG/Style中 ‘integer’元素或者哈希(速度快于系统)
- PreserveAspectRatio //在这里用于存储位置与缩放
2.6 解析流程
startDocument
startElement
characters
endElement
endDocument
2.7 层级管理
startDocument
1 | svgDocument = new SVG(); |
startElement
1 | ...... |
characters
1 | ...... |
endElement
1 | ...... |
endDocument
......
3. 将得到的SVG渲染到Picture\Canvas上
3.1 渲染入口
1.renderToPicture() : Picture
2.renderToPicture(int, int) : Picture
3.renderViewToPicture(String, int, int) : Picture
4.renderToCanvas(Canvas) : void
5.renderToCanvas(Canvas, RectF) : void
6.renderViewToCanvas(String, Canvas) : void
7.renderViewToCanvas(String, Canvas, RectF) : void
1 | /** |