我正在开发一个Android自定义图表视图,它使用Canvas#drawLines和一个打开抗锯齿的绘图对象。我的观点已打开硬件加速。偶尔当我捏合放大/缩小时,我的图形中的一些线条将显得脱节,并且它们逐渐变细为渐变。如果我更改为软件层或禁用抗锯齿,问题就会消失。这是drawLines的错误还是有人知道可能会发生什么?
第一张图片显示问题,第二张图片略有移动,并展示了图表在大多数情况下的样子,完全连接的线条。
(图片演示问题)
(显示图形应该如何显示的图像 - 仍有几个小间隙)
答案 0 :(得分:1)
我认为Romain Guy的这篇文章回答了你的一些问题:http://android-developers.blogspot.com/2011/03/android-30-hardware-acceleration.html
实际上,打开硬件加速时,drawLines不支持消除锯齿功能。还要记住,硬件加速并不总是对您的应用程序“更好”。如果您正在绘制的内容可以加速,您的应用程序将从中受益,但对于某些操作可能会更糟。
我相信这解释了为什么你的线条在硬件加速时显得脱节。我不太确定它会解释为什么当你关闭抗锯齿时它会起作用。我想,即使关闭了抗锯齿,它也会显得脱节,但显然情况并非如此!
答案 1 :(得分:1)
尝试在调整大小手势后强制刷新。
查看我原来的Accelerometer Toy应用。 (是的,它真的需要更新...)如果你没有看到该应用程序的问题,那么我可能会帮助。