Skip to content

Latest commit

 

History

History
101 lines (72 loc) · 2.85 KB

save_cellular_traffic_zh.md

File metadata and controls

101 lines (72 loc) · 2.85 KB

节省蜂窝流量

翻译:English

Important

仅安卓平台可用

节省蜂窝流量功能可以在检测到当前是蜂窝流量时将 ImageRequest 的 depth 参数设置为 Depth .LOCAL,这样就不会再从网络下载图片

安装组件

${LAST_VERSION}: Download (不包含 'v')

implementation("io.github.panpf.sketch4:sketch-extensions-core:${LAST_VERSION}")

配置

首先注册 SaveCellularTrafficRequestInterceptor 请求拦截器,如下:

// 在自定义 Sketch 时为所有 ImageRequest 注册
Sketch.Builder(context).apply {
    components {
        addRequestInterceptor(SaveCellularTrafficRequestInterceptor())
    }
}.build()

// 加载图片时为单个 ImageRequest 注册
ImageRequest(context, "https://example.com/image.jpg") {
    components {
        addRequestInterceptor(SaveCellularTrafficRequestInterceptor())
    }
}

然后针对单个请求开启节省蜂窝流量功能,如下:

ImageRequest(context, "https://example.com/image.jpg") {
    saveCellularTraffic(true)
}

最后配置节省蜂窝流量功能专用的错误状态图片,如下:

// View
ImageRequest(context, "https://example.com/image.jpg") {
    saveCellularTraffic(true)

    error(
        ConditionStateImage(defaultImage = R.drawable.ic_error) {
            saveCellularTrafficError(R.drawable.ic_signal_cellular)
        }
    )
}

// Compose
ComposableImageRequest(context, "https://example.com/image.jpg") {
    saveCellularTraffic(true)

    error(
        ComposableConditionStateImage(defaultImage = Res.drawable.ic_error) {
            saveCellularTrafficError(Res.drawable.ic_signal_cellular)
        }
    )
}

Tip

saveCellularTrafficError(Res.drawable.ic_signal_cellular) 需要导入 sketch-extensions-compose-resources 模块

点击强制加载

Important

  1. 仅支持 Android View
  2. 此功能需要使用 SketchImageView

开启点击 ImageView 忽略节省蜂窝流量并重新加载图片功能:

sketchImageView.setClickIgnoreSaveCellularTrafficEnabled(true)