gpt4 book ai didi

android - 如何部分更新surfaceview?

转载 作者:行者123 更新时间:2023-11-30 02:56:44 26 4
gpt4 key购买 nike

我的 Activity 中有一个 surfaceview。最初使用一些圆圈绘制

Canvas c = SurfaceView.getHolder().lockCanvas();

SurfaceView.getHolder().unlockCanvasAndPost(c);

稍后我想在 surfaceview 的很小一部分上绘制。我不想重绘整个 surfaceview。是否可以只更新所需的部分?

最佳答案

改用 lockCanvas(Rect dirty)。传入要重绘的区域。

请注意,dirty 是一个输入输出参数。 Rect 可能会扩展以覆盖更大的区域,您需要设置它覆盖的每个像素。因此,如果(例如)SurfaceView 不再能够访问之前的像素,它将扩展 Rect 以覆盖整个表面。

因为 SurfaceView 是双缓冲或三缓冲的,所以实现将从前一个缓冲区复制像素 block 。由于您从 SurfaceView 获得的 Canvas 永远不会进行硬件加速,因此指定脏矩形通常会带来性能上的优势。

关于android - 如何部分更新surfaceview?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23144018/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com