Android画布可以使用矢量数据进行绘制

时间:2018-03-02 22:05:22

标签: android canvas vector-graphics

用手指在屏幕上绘制最常用的方法是使用android的内置画布,通常的步骤是:

1)创建自定义视图(图纸视图)。

2)将位图设置为画布。

3)初始化路径(设置绘画,......)。

4)实现onTouchEvent(DOWN / UP / MOVE)以获得位置点(X&& Y)。

5)调用onDraw()根据X&&收率

所以这里的数据是X&& Y(屏幕上的手指位置)。

问题

一些笔记应用程序,使用一种称为(使用向量绘制)的特殊技术,起初我没有得到这个想法(因为我所知道的只是画布和旧的手指绘制方式)。

研究后

我研究了一下,发现矢量图形可以在不损失质量的情况下进行扩展。

我在问题this one中找到了类似的帖子。

如果您打开链接并阅读答案,您会看到@Trevor就此提出了非常好的答案。他说你必须用手指获取路径数据并将它们存储为内存中的矢量数据

将它们作为矢量数据存储在内存中?

好的,这应该是什么意思,我应该在哪里存储它们以及知道我只能用手指获得两个浮动位置X&& Y ...所以我如何将它们保存为矢量?我应该在哪里保存它们?

如果我能保存它们

如何使用canvas onDraw()方法检索它们并将它们绘制回来?

你认为这是用向量绘制的意思吗?如果是,目的是什么?

我正在研究一种在画布上增强绘图技术并操纵绘图以使其更逼真的方法。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

Scalable Vector Graphics(。svg)是一种基于HTML的简单文件格式。您可以从用户输入中动态生成.svg元素,然后可以再次绘制到屏幕(使用适当的库),也可以非常轻松地保存/重新加载到应用程序中。

Here is a tutorial on svg paths,这听起来像你想要的; Bézier曲线可以在数据点之间进行良好的插值。