在我正在研究的项目中,我决定使用SurfaceView而不是自定义双缓冲介质。它提供了我需要的一切,它已经是双缓冲的。 问题是它不会让我指定重绘的多个脏矩形。 SurfaceView.lockCanvas(Rect)只允许单个矩形而没有参数,重绘整个东西是相当昂贵的。另一个为每个Rect调用lockCanvas(Rect)的解决方案显然会导致屏幕上出现眨眼。 你有没有任何解决方案让机会留在Android API领域,如果没有你有任何我可以使用的外部替代品?
答案 0 :(得分:1)
如果您在需要调用lockCanvas之前知道脏区域(听起来像你可能),您可以计算一个“超级矩形”来锁定包含所有矩形的区域。例如,如果你的矩形是(使用l,r,t,b坐标)[0,10,0,20]和[15,30,10,35],你的超矩形将是[0,30,0,35] ]