Android自定义视图闪烁

时间:2019-12-07 16:51:04

标签: android view surfaceview flicker

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

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

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

我尝试做的事情:

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

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

  3. 1和2的组合

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

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

1 个答案:

答案 0 :(得分: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);