13.6 Section 13: Celestial & Environmental Data

Standalone bubble level (Tools)

Full-screen bubble level living in the Tools menu, independent of the viewfinder overlay.

Where to find it

Tools Bubble Level

Summary

A pure-black full-screen Bubble Level reachable from Tools > Bubble Level. Centred 2D circular bubble plus a vertical pitch vial pinned to the right edge and a horizontal roll vial pinned to the bottom edge, all sized to the screen rather than the small viewfinder overlay. Numeric pitch and roll readout pill at the top, signed and rounded to one decimal, that flips to green when both axes sit inside the 0.5 degree tolerance. Owns its own gravity sensor lifecycle so it works regardless of whether the Composition Grid bubble level overlay is enabled.

Tap to zoom — actual screenshot from the app

Detail

How it works

A bubble level you can pull up at any time without enabling the Composition grid level overlay first. Useful for tripod setup, copy stand alignment, building a panorama base, or any time you need to flatten a surface and the camera preview would just get in the way. Lives in the Tools list so it is one tap away.

Opening the tool

Open the Tools menu from the toolbar and tap Bubble Level. The whole screen turns black and the level fills it. Tap the close icon in the top right or press the back button to return.

Reading the centre circle

The 2D bubble drifts in the direction the camera is tilting. Centre means level on both axes. The two faint inner ticks at the one third and two thirds radius mark roughly 5 and 10 degrees of tilt, and the very small inner ring is the 0.5 degree green tolerance zone. When both axes are inside that tolerance the ring and bubble both turn green and the readout pill at the top also turns green.

Reading the edge vials

The vial on the right edge tracks pitch only (camera tilting up or down). The vial on the bottom edge tracks roll only (camera tilting left or right). Two short ticks bracket the centre of each vial to show the alignment zone. The vials read the same gravity vector as the centre circle but isolate one axis at a time, which is helpful when you are adjusting one direction without affecting the other.

Numeric readout

The pill at the top reads R for roll and P for pitch in degrees, signed, to one decimal. Use it when the bubble is hard to read in bright light or when you need to log a precise tilt for a copy stand or rephotography setup.

Why it lives in Tools rather than the viewfinder

The Composition grid still has its own bubble level overlay that draws on top of the live preview, for framing the actual shot. The standalone tool is for the case where you want the level by itself, full screen, without the viewfinder distracting you or the preview eating battery. Both surfaces are independent. Turning the viewfinder overlay on or off does not affect the standalone tool, and vice versa.

Battery cost

The gravity sensor only listens while this dialog is on screen. The moment you close it the listener is unregistered. Camera capture is paused while the tool is open since the viewfinder is hidden behind the black background anyway.

Implementation notes (for developers)
StandaloneBubbleLevelDialog in ui/standalone/. Master flag is _standaloneBubbleLevelOpen on ViewfinderViewModel (held outside ViewfinderUiState for the D8 register-ceiling reason). Tilt sensor (TYPE_GRAVITY with TYPE_ACCELEROMETER fallback) is registered locally via DisposableEffect at SENSOR_DELAY_GAME and disposed on dismiss, so the standalone tool does not depend on framingShowLevelIndicator. Drawing helpers (drawCircularBubbleLarge, drawLinearVialLarge) are written for full-screen scale rather than reusing the viewfinder overlay code, which is sized for a 120 dp circle pinned to the frame edge. Camera pause flag is extended to include this dialog so the preview pipeline idles behind the black scrim.

Search documentation