Load a CE.SDK archive converted from an Adobe Photoshop PSD file into your Android app, then continue editing the imported design.
Android does not parse PSD files. Convert the PSD into a self-contained
.cesdk archive in a browser or Node.js environment, then deliver that archive
to the app through your backend, app storage, or a user-selected document. For
server-side conversion, use the Node.js importer.
Conversion Prerequisite#
Load the Converted Archive#
Convert the PSD once with @imgly/psd-importer in a browser or Node.js
environment, save the resulting .cesdk archive, and make its Uri available
to Android. The archive bundles the converted scene with its embedded assets,
so loadArchive() can replace the active scene without Android reading the
original PSD file.
val scene = engine.scene.loadArchive( archiveUri = archiveUri, waitForResources = true,)Pass a local file URI, a readable Android content URI, or a remote HTTPS URI.
waitForResources=true resumes the coroutine after the archive’s bundled
resources are ready for editing or export.
Verify the Import#
Confirm that the loaded scene contains pages before showing it in your app. An empty page list means the converted archive has no usable design pages.
check(engine.scene.getPages().isNotEmpty()) { "The converted Photoshop archive contains no pages."}Fit the Scene to the Viewport#
Frame the loaded scene after the archive is ready. The padding values are screen pixels around the focused scene.
engine.scene.zoomToBlock( block = scene, paddingLeft = 40F, paddingTop = 40F, paddingRight = 40F, paddingBottom = 40F,)What Gets Imported#
The conversion can preserve layer grouping, positioning, rotation, transparency, text with font-family and bold or italic styling, shapes, solid color fills, strokes, and embedded images. Android receives the converted scene in the archive and can edit it like any other CE.SDK scene.
Limitations#
These conversion limits apply before the archive reaches Android:
- Gradient fills are not supported; only solid color fills are converted.
- Image cropping is not preserved, so images import at their full bounds.
- Text in one layer cannot mix multiple font sizes or families, and text justification is not supported.
- Groups have limited support, especially single-member groups.
- Unavailable fonts use fallbacks selected during conversion.
- Some blend modes are not supported, including PassThrough, Dissolve, Linear Burn, and Subtract.
API Reference#
| Method | Description |
|---|---|
engine.scene.loadArchive(archiveUri=_, overrideEditorConfig=_, waitForResources=_) |
Load the converted archive and its bundled assets from a URI. |
engine.scene.getPages() |
Return the pages in the active imported scene. |
engine.scene.zoomToBlock(block=_, paddingLeft=_, paddingTop=_, paddingRight=_, paddingBottom=_) |
Fit the imported scene in the viewport with screen-pixel padding. |
Next Steps#
- Import Design from Archive — Load CE.SDK archives from storage, document providers, or remote locations.
- Import Templates — Load templates from scene files, archives, and serialized strings.
- Export Overview — Export the imported design to images, documents, and other formats.