我已经完成了一个用户可以用手指画线的应用程序。为此,我扩展了一个视图并调用
Canvas.drawPath(path)
每次用户触摸并移动手指时,path
都会更新。但是现在我需要能够保存这样的绘图,但输出文件的分辨率应该比绘图视图大。我认为这或多或少与其他图片编辑应用程序一样,可以显示图片的缩小版本,但最后您将编辑内容保存为原始尺寸。
我想如果我在缩小的视图上绘制然后只是缩放以进行保存,它将看起来很糟糕(像素化),因为输出图像将比视图上显示的大两倍。
那么图像编辑器如何处理呢?我还没有找到(还)这种图像编辑器的源代码。
提前致谢!
答案 0 :(得分:0)
我最终创建了第二个不可见但具有正确宽度和高度的绘图视图。每次在可见视图上进行drawSomething()调用时,不可见视图将使用相同的调用进行更新,但坐标将按正确的因子进行缩放。该因子的计算如下:
factor = visibleView.width / invisibleView.width;
对于可见和不可见的视图,我保持宽高比相同,所以这里只需要一个因素。
获取不可见视图的位图通常不起作用,所以我使用了这个答案https://stackoverflow.com/a/16501007/2160877。
对我来说这个解决方案有效,但我找不到任何其他解决方案,所以如果有人分享更好的解决方案,我会很感激。