gpt4 book ai didi

java - 拆分 SurfaceView - Android/Java

转载 作者:行者123 更新时间:2023-12-01 11:52:58 28 4
gpt4 key购买 nike

我想拆分 SurfaceView 以便更新屏幕的一部分而不是另一部分。有什么方法可以实现这一点,或者我需要做两个 SurfaceView?

最佳答案

您可以使用SurfaceHolder.lockCanvas(Rect dirty)来指定表面的哪些部分将发生变化(以及哪些部分不会发生变化)。

假设您的程序正在循环中更新 SurfaceHolder,如下所示:

private boolean mIsRunning;
private SurfaceHolder mHolder;

// ...

public void run() {
while (mIsrunning){
Canvas canvas = null;
synchronized (mHolder) {
try {
canvas = mHolder.lockCanvas();
doDraw(canvas);
}
finally {
if (canvas != null) {
mHolder.unlockCanvasAndPost(canvas);
}
}
}
}
}

lockCanvas(Rect dirty) 替换 SurfaceHolder.lockCanvas() 只会强制您在 dirty 的范围内进行绘制。持有者的其余部分将被保留,不需要重新绘制。

关于java - 拆分 SurfaceView - Android/Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28650941/

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