更新记录

1.0.0(2026-04-20)

  • 初版:新增 xxq-nine-png UTS 插件
  • Android 支持 .9.png 按目标尺寸拉伸并缓存输出可显示 png
  • 提供 render / clearCache API

平台兼容性

uni-app(5.0)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× × × 17
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × × × ×

uni-app x(5.0)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - - - - -

xxq-nine-png

xxq-nine-png 是一个 Android 专用的 UTS 插件,用于将 .9.png 资源按目标尺寸生成可直接显示的普通 PNG 文件,并返回本地路径给 image 组件使用。

适合欢迎页、弹窗背景、气泡等需要 NinePatch 拉伸效果的场景。

特性

  • 支持输入 .9.png 源路径与目标宽高(px)
  • 优先使用 Android NinePatchDrawable 原生拉伸
  • 当运行时无法获取 ninePatchChunk 时,自动按 .9.png 黑线规则降级渲染
  • 输出文件保存到 /cache/xxq-nine-png
  • 当前策略为每次调用都生成新文件(不复用旧文件)
  • 提供目录清理 API,便于页面跳转后回收临时文件

平台支持

  • Android:
  • iOS / Web / Harmony: 返回 success = false

安装后使用

import { xxqNinePng } from '@/uni_modules/xxq-nine-png'

const result = xxqNinePng.render({
  sourcePath: '/static/start/720_1242.9.png',
  width: 1080,
  height: 1920
})

if (result.success && result.path) {
  // 建议补 file:// 前缀后赋给 image
  const imagePath = result.path.startsWith('file://') ? result.path : `file://${result.path}`
  this.bgImagePath = imagePath
} else {
  console.error(result.message)
}

API

xxqNinePng.render(options)

renderNinePng(options)

渲染并输出 PNG 文件。

参数:

  • sourcePath: string
    .9.png 路径。支持项目静态路径(如 /static/...)或绝对路径。
  • width: number
    目标宽度(px)。
  • height: number
    目标高度(px)。

返回:

type NinePngRenderResult = {
  success: boolean
  path?: string
  fromCache?: boolean
  message?: string
}

当前实现每次生成新文件,fromCache 固定为 false

xxqNinePng.clearCache()

clearNinePngCache()

清理 /cache/xxq-nine-png 下的所有生成图片。

xxqNinePng.clearGeneratedImages()

clearNinePngGeneratedImages()

clearCache 等价的语义化方法,建议业务侧优先使用该方法。

常见问题

1) 为什么会走降级渲染?

部分 .9.png 在运行时无法拿到 ninePatchChunk(例如资源未经过 Android aapt 的 NinePatch 编译链路),插件会自动切换到黑线规则降级渲染。

2) 返回路径图片不显示?

有些环境下需要给绝对路径加 file:// 前缀,例如:

/data/user/0/xxx/cache/xxq-nine-png/a.png -> file:///data/user/0/xxx/cache/xxq-nine-png/a.png

3) 目标尺寸用 rpx 还是 px?

插件参数使用 px。如果页面是 rpx 设计稿,请先做换算(通常结合 windowWidthpixelRatio)。

更新说明

  • 1.0.0
    • 首个版本发布
    • 支持 Android .9.png 拉伸输出
    • 支持 .9 黑线规则降级渲染
    • 新增目录清理 API(clearGeneratedImages

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。