Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
这两个表达式可以同时为真吗?holder.getSurface().isValid() == true; 和 canvas = holder.lockCanvas() canvas == null;
从参考资料:
isValid() - 这个对象是否拥有一个有效的表面?如果它拥有一个物理表面,则返回 true,因此 lockCanvas() 将成功。
因此,如果 lockCanvas() 成功,它将返回一个非空画布。
但是你不应该直接访问 Surface (你需要同步),surfaceChanged你只能在 canvas 不为空时调用canvas = holder.lockCanvas()和绘制。
surfaceChanged
canvas = holder.lockCanvas()