gpt4 book ai didi

Android:lockCanvas() 和 lockCanvas(null) 有什么区别?

转载 作者:搜寻专家 更新时间:2023-11-01 07:35:14 30 4
gpt4 key购买 nike

标题说的很清楚,不过我会给出一个代码示例以防万一。这是来自 Android SDK 中的 LunarLander 示例:

    @Override
public void run() {
while (mRun) {
Canvas c = null;
try {
c = mSurfaceHolder.lockCanvas(null);
synchronized (mSurfaceHolder) {
if (mMode == STATE_RUNNING) updatePhysics();
doDraw(c);
}
} finally {
// do this in a finally so that if an exception is thrown
// during the above, we don't leave the Surface in an
// inconsistent state
if (c != null) {
mSurfaceHolder.unlockCanvasAndPost(c);
}
}
}
}

lockCanvas() 的文档说所有像素都必须重新绘制,而 lockCanvas(Rect dirty) 说你只需要重新绘制像素。我看到将 null 传递给此函数的两种可能的解释:它不需要重新绘制任何像素,或者以与 lockCanvas() 相同的方式运行。

最佳答案

它是开源的

public Canvas lockCanvas() {
return internalLockCanvas(null);
}
public Canvas lockCanvas(Rect dirty) {
return internalLockCanvas(dirty);
}

关于Android:lockCanvas() 和 lockCanvas(null) 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12293835/

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