1

在我正在进行的项目中,我决定使用 SurfaceView 而不是自定义双缓冲介质。它提供了我需要的一切,并且已经双缓冲了。问题是它不会让我指定多个脏矩形来重绘。SurfaceView.lockCanvas(Rect) 只允许单个矩形并且没有参数重绘整个东西是相当昂贵的。显然,为每个 Rect 调用 lockCanvas(Rect) 的另一种解决方案会导致屏幕上的眼睛流血闪烁。您是否有任何解决方案可以让您有机会留在 Android API 领域,如果没有,您是否有任何我可以使用的外部替代方案?

4

1 回答 1

1

如果您在需要调用 lockCanvas 之前知道脏区(听起来可能),您可以计算一个“超级矩形”来锁定包含所有矩形的区域。例如,如果您的矩形是(使用 l,r,t,b 坐标)[0,10,0,20] 和 [15,30,10,35],那么您的超级矩形将是 [0,30,0,35 ]。

于 2013-01-29T22:46:31.110 回答