- Android 13, 14 and 15 added to the version selector.
- RCS read receipts modelled as word receipts under the bubble.
- Dual-SIM badge added to the status-bar icon cluster.
Android Text Message Generator
Material-style bubbles, RCS read receipts and a status bar that accounts for dual-SIM icons — the details a plain bubble template gets wrong.
This layout uses documented starting measurements. It is not yet matched to a device screenshot the way the iMessage layout is.
Free download, watermarked
The free tier gives you a downloadable PNG with a small “Scenemock” watermark in the corner. No signup, no upload, no queue. When you need the watermark gone, a 2× export or a batch of images, see pricing.
Android Text Message Generator mockups render entirely in your browser: the text you type is never sent to a server, never stored and never attached to an account.
How to make one in three steps
Pick the Android version
Android 13, 14 and 15 are selectable. Bubble geometry is shared; what moves between versions is the status-bar icon cluster and the RCS receipt wording.
Write and send
One line per message, “me:” for the outgoing side. Outgoing messages can carry an RCS read receipt instead of ticks.
Download
A watermarked PNG is generated in the tab. The same engine renders the three samples below, so you can compare light, dark and black before exporting.
The Material side: accents, receipts and status icons
On Android the chat surface is built from Material components, and that changes three things a generic bubble generator tends to miss: how the accent colour is derived, how read state is communicated, and how crowded the status bar gets on a dual-SIM phone.
Material accents
Material's dynamic colour takes a seed colour from the wallpaper and derives a tonal palette from it. Light mode here uses a pale blue surface (#D3E3FD) with dark navy text (#041E49); dark mode moves the surface to a muted navy (#3D4F6B) with light text (#E3E3E3) so the contrast survives on a near-black page. Incoming bubbles sit on a neutral grey rather than white, which keeps incoming and outgoing distinguishable without a hard border.
RCS receipts
Rich Communication Services messages show read state as a word under the message rather than as tick marks. That matters for layout: ticks sit inside the bubble, so they eat into the text width, while a word sits in the run gap below. Our renderer treats receipts as a meta-layer property: the same message can be rendered with word receipts or with ticks without touching the bubble drawing path.
Status-bar icon cluster
Android status bars carry more icons than the iOS notch layout: a dual-SIM badge, a separate signal cluster per SIM on many devices, Wi-Fi and battery. The generator draws one cluster but reserves room for the badge so the icons do not overlap the notch area. The safe area here is 24 points — tighter than the island layout, which is why Android threads start higher on the screen.
Bubble corners across versions
Between Android 13 and 15 the corner radii used in messaging moved toward larger, softer corners; the current layouts sit at 20 points. The outgoing-tail corner is squared on the side facing the composer, which is a platform convention rather than a decorative choice. We keep the radius in platform data so a future version can change it in one place.
Version differences
| Version | Radius (pt) | Status icons |
|---|---|---|
| Android 13 | 20 | Signal, Wi-Fi, battery (single SIM) |
| Android 14 | 20 | Signal, Wi-Fi, battery, dual-SIM badge |
| Android 15 | 20 | Signal, Wi-Fi, battery, dual-SIM badge |
Measured values
Type is 16 points on a 21-point line, the header is 64points tall, and bubbles take up to 75% of the screen width.
| Parameter | Google Messages (Android) |
|---|---|
| Canvas (device px @3×) | 1080 × 2400 |
| Logical size (pt) | 360 × 800 |
| Safe top (pt) | 24 |
| Status bar height (pt) | 24 |
| Status bar | android · dual-sim, signal, wifi, battery |
| Island / cutout (pt) | — |
| Calibration | B — document values, pending device pass |
| Header height (pt) | 64 |
| Bubble max width | 75% |
| Bubble padding x / y (pt) | 20 / 12 |
| Bubble radius (pt) | 20 |
| Bubble tail | round |
| Text size / line height (pt) | 16 / 21 |
| Receipts | word: Sending / Sent / Delivered / Read |
| Composer placeholder | Text message |
| Timestamp position | inside |
| Outgoing / incoming bubbles (light) | #D3E3FD / #F1F3F4 |
| Outgoing / incoming bubbles (dark) | #3D4F6B / #2D2F31 |
| Wallpaper dim (light / dark / black) | 0 / 0.35 / 0.6 |
| Bubble alpha (light / dark / black) | 1 / 0.95 / 0.9 |
Canvas sizes are device pixels at 3×; the iMessage canvas is 1206 × 2622, i.e. 402 × 874 points on the calibrated iPhone 17 Pro (iOS 26.4). All other measurements are device-independent points. The 390 × 844 / 47 pt layout from the first spec draft is kept as an uncalibrated variant and is not the default.
Starting values, pending device calibration: TODO(calibrate).
Android layout update log
Android releases that changed the messaging surface and what moved here.
Frequently asked questions
Does it support RCS read receipts?
Yes. The outgoing message can show an RCS read receipt, which is text-based rather than the tick marks used on green-bubble surfaces. Receipt wording follows the message state.
Can I adjust the bubble corners?
Not directly yet. Corner radius is a platform parameter set to 20 points for this family, and outgoing bubbles square the corner that faces the composer, which is how the platform draws them.
Is it free?
Yes. Watermarked PNG downloads are free with no signup; removing the watermark and higher-resolution exports are paid features.
Why do the bubbles look different in dark mode?
The dark theme swaps the pale blue and light grey for muted navy and graphite, flips the status-bar ink to white and dims the page background. Text ink is chosen for contrast, not simply inverted.
Can I show dual-SIM icons?
The status-bar icon set includes a dual-SIM badge for the Android 14 and 15 layouts. You can leave it out for single-SIM mockups.