Android-具有硬件加速和抗锯齿功能的drawline会产生伪影

Android-具有硬件加速和抗锯齿功能的drawline会产生伪影,android,canvas,drawing,antialiasing,hardware-acceleration,Android,Canvas,Drawing,Antialiasing,Hardware Acceleration,我正在开发一个Android自定义图形视图,该视图使用画布绘制线和启用了抗锯齿的paint对象。我的视图已启用硬件加速。偶尔,当我按下放大/缩小按钮时,图形中的一些线条会出现脱节,它们会逐渐变细为渐变。如果我切换到软件层或禁用抗锯齿,问题就会消失。这是一个关于抽绳的错误,还是有人知道可能发生了什么 第一张图片展示了问题,第二张图片稍微移动了一下,展示了图形在大多数情况下的外观,以及完全连接的线条 (图片显示问题) (显示图形外观的图像-仍然存在一些小间隙) 我认为罗曼·盖伊的这篇文章回答了你的

我正在开发一个Android自定义图形视图,该视图使用画布绘制线和启用了抗锯齿的paint对象。我的视图已启用硬件加速。偶尔,当我按下放大/缩小按钮时,图形中的一些线条会出现脱节,它们会逐渐变细为渐变。如果我切换到软件层或禁用抗锯齿,问题就会消失。这是一个关于抽绳的错误,还是有人知道可能发生了什么

第一张图片展示了问题,第二张图片稍微移动了一下,展示了图形在大多数情况下的外观,以及完全连接的线条

(图片显示问题)

(显示图形外观的图像-仍然存在一些小间隙)

我认为罗曼·盖伊的这篇文章回答了你的一些问题:

本质上,启用硬件加速时,绘图线不支持消除混叠。还要记住,硬件加速并不总是对你的应用“更好”。如果你正在画的东西可以被加速,你的应用程序将从中受益,但对于某些操作来说可能更糟


我相信这就是为什么当硬件加速时,您的线路看起来不连贯的原因。不过,我不太确定这是否解释了为什么禁用抗锯齿时它会起作用。我可以想象,即使禁用了抗锯齿,它也会显得脱节,但显然情况并非如此

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


看看我的旧应用程序。(是的,它确实需要更新…)如果你看不到该应用程序的问题,那么我可能可以帮助你。

谢谢。我也遇到过类似的问题。我试图通过使用
LAYER\u TYPE\u软件
来解决这个问题。然而,事情看起来比较慢,如图中所示,根据我的触摸事件,有一个移动的十字线。你知道为什么吗?我的猜测是,当使用
LAYER\u TYPE\u software
时,将软件的屏幕外位图传输到GPU需要时间。禁用反别名后,虽然不再出现不相交的问题,但绘制的线条并不平滑,看起来很难看。