5

我正在开发一个使用 Canvas#drawLines 和一个启用了抗锯齿的绘制对象的 Android 自定义图形视图。我的视图已打开硬件加速。有时,当我捏放大/缩小时,我的图表中的某些线条会显得脱节,并且它们会逐渐变细成渐变。如果我更改为软件层或禁用抗锯齿,问题就会消失。这是 drawLines 的错误还是有人知道可能发生了什么?

第一张图片展示了这个问题,第二张图片稍微移动并展示了图表在大多数情况下的外观,并带有完全连接的线条。

(图片展示了问题) 在此处输入图像描述

(显示图表应该如何显示的图像 - 仍然存在一些小的差距) 在此处输入图像描述

4

2 回答 2

1

尝试在调整大小手势后强制刷新。

看看我的旧Accelerometer Toy应用程序。(是的,它真的需要更新......)如果您没有看到该应用程序的问题,那么我可能会提供帮助。

于 2014-11-30T18:48:49.377 回答
1

我认为 Romain Guy 的这篇文章回答了你的一些问题:http ://android-developers.blogspot.com/2011/03/android-30-hardware-acceleration.html

本质上,当硬件加速打开时,drawLines 不支持抗锯齿。另请记住,硬件加速并不总是对您的应用程序“更好”。如果您正在绘制的内容可以加速,您的应用程序将从中受益,但对于某些操作可能会更糟。

我相信这可以解释为什么您的线路在硬件加速时显得脱节。不过,我不太确定它解释了为什么当你关闭抗锯齿时它会起作用。我想即使关闭抗锯齿,它也会显得脱节,但显然情况并非如此!

于 2014-11-26T00:18:35.500 回答