Android 矢量放大像素化

Alv*_*cia 7 java android android-layout kotlin android-drawable

我正在尝试创建一个可缩放的 ImageView,它可以显示矢量图像(SVG 转换为 Vector Drawable),并且在放大时不会失去清晰度。

我使用了多种缩放方法,比如这样这样来处理缩放、捏合和拖动。这导致在尝试放大时出现模糊混乱,如下所示。

据我从这篇文章中了解到,这些方法不起作用,因为矢量被绘制为位图,因此在放大时会像素化。

是否有任何解决方法可以为每个缩放步骤重新绘制矢量?或者我应该在显示之前尝试以更大的尺寸绘制矢量?

任何帮助表示赞赏。

放大时模糊

缩放时重画?绘制更大的画布,然后缩放?

use*_*239 4

这样做是为了节省内存。

解决方案:

你应该做的subsampling scaling,就是放大舞台。

例如:缩放到 300% 后,从具有您所在矩形的矢量中创建一个新位图,然后开始缩放新图像(请参见下面的 GIF

在此输入图像描述

编码这将需要一些时间,但我建议使用 subsampling-scale-image-view 库作为执行此操作的接口。您可以通过一些更改使其进行矢量缩放。