Android自定义视图闪烁

问题描述 投票:0回答:1

我很久以来一直试图解决我的问题。但是,我很茫然。问题是这样的:

  1. 我有一个自定义Android视图,我在其上渲染了10个矩形(像条形图一样长,颜色不同)

  2. 当更新具有不同不透明度的矩形之一时,不会改变。所以我清除了画布。但这会导致闪烁并非一直如此,但有时

我尝试做的事情:

  1. 将所有内容渲染到屏幕外的位图,然后对其进行钝化处理,这仍然无法解决我的问题

  2. 使用SurfaceView并在另一个线程中渲染

  3. 1和2的组合

最后,我认为问题在于背景被删除,但我不希望将其删除。但是,我永远无法出现新的“像素”。我还尝试过尝试不同的传输模式,例如SRC,SRC_ATOP,当我尝试使用数字1时,它会有所帮助,但并不能解决问题。

有人对可能出什么问题有任何指导吗?或任何其他可能的解决方案?

android view surfaceview flicker
1个回答
0
投票

我终于弄清楚了。我不必清除背景,只需将绘制模式暂时更改为SRC。

context.paint.setStyle(Paint.Style.FILL);
context.paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC));
context.canvas.drawPath(context.path, context.paint);
context.paint.setXfermode(null);
© www.soinside.com 2019 - 2024. All rights reserved.