You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Compose的Preview预览导出为高清PNG/JPG格式图片

Compose预览界面导出高清JPG/PNG方案

方法1:使用Android Studio内置导出功能(无需写代码,推荐普通场景使用)

操作步骤如下:

  • 打开包含DefaultPreview注解的Compose代码文件,等待预览面板加载完成你要导出的预览内容
  • hover到对应DefaultPreview的预览卡片区域,卡片右上角会出现功能操作图标组,点击导出图标(矩形带向下箭头样式),也可以右键预览卡片,选择「导出图片」选项
  • 在弹出的配置窗口中,可自行选择导出格式为PNG或JPG,调整导出分辨率、是否包含系统UI等参数,选择本地保存路径后确认即可导出高清图片。

小提示:如果需要导出的图片背景和实际效果一致,可以在预览注解上加参数配置:@Preview(showBackground = true, backgroundColor = 0xFFFFFFFF, widthDp = 360, heightDp = 640),调整到你需要的尺寸后再导出,效果会更符合预期。

方法2:代码方式导出(适合批量导出、自定义导出参数场景)

可以通过编写Compose测试用例,手动捕获预览内容生成Bitmap再保存到本地,示例代码如下:

// 要导出的预览
@Preview(showBackground = true, backgroundColor = 0xFFFFFFFF)
@Composable
fun DefaultPreview() {
    MyCustomLayout() // 替换为你自己的布局内容
}

// 测试类中的导出逻辑
@get:Rule
val composeTestRule = createAndroidComposeRule<MainActivity>()

@Test
fun exportPreviewImage() {
    composeTestRule.setContent {
        DefaultPreview()
    }
    // 捕获根布局内容生成Bitmap
    val previewBitmap = composeTestRule.onRoot()
        .captureToImage()
        .asAndroidBitmap()
    
    // 保存Bitmap到本地存储
    val saveFile = File(composeTestRule.activity.getExternalFilesDir(null), "default_preview_export.jpg")
    FileOutputStream(saveFile).use { outputStream ->
        // 格式选JPG的话压缩率范围0-100,100为最高画质;选PNG的话压缩率参数无效
        previewBitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream)
    }
}

运行上述测试用例后,导出的高清图片会保存在应用的私有外部存储目录下。

内容的提问来源于stack exchange,提问作者Mohammad Mostafa Dastjerdi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 13:15:05