Skip to content

基于Flutter中`Image`类扩展的网络图片加载与本地图片加载

License

Notifications You must be signed in to change notification settings

owoeo/flutter_glide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

flutter_glide

基于Flutter中Image类扩展的网络图片加载与本地图片加载,设计思路与灵感取于 Cached network imageGlide.

特点

  • 使用instantiateImageCodec方法中的targetWidthtargetHeight参数实现对源图片按需裁剪,不占用多余内存资源
  • 单纯扩展Image类的功能与不足,对项目代码没有侵入性
  • 支持缓存自定义实现,目前默认缓存使用flutter_cache_manager
  • 支持大部分图床按需裁剪图片的需求

简单使用

网络图片加载

你可以直接使用 Glide.network,与官方一致。

Glide.network(
  url,
  width: 100,
  height: 200,
  fit: BoxFit.fill,
)

本地图片加载

你可以直接使用 Glide.file,与官方一致。

Glide.file(
  file,
  width: 100,
  height: 200,
  fit: BoxFit.fill,
)

缓存自定义实现

例子

class DefaultImageCacheManager extends ImageCacheManager {
  @override
  Future<File> getSingleFile(String url, {Size size, double devicePixelRatio}) {
    return DefaultCacheManager().getSingleFile(url);
  }
}
//init
Glide.cacheManager = DefaultImageCacheManager();

实现图床按需加载

这里以阿里云OSS为例子

Glide.pathBuilder = (url, size, devicePixelRatio) => size.height >
        size.width
    ? '$url?x-oss-process=image/resize,h_${(size.height * devicePixelRatio).toInt()}'
    : '$url?x-oss-process=image/resize,w_${(size.width * devicePixelRatio).toInt()}';

写在最后

目前实现的功能较少,只满足目前项目开发,开源项目难免不足,希望有朋友能提出宝贵的意见

取这个名字的用意

说实在的取这个名字有点大言不惭

大家见谅,取这个名字主要希望在Android原生转Flutter方向的同学能加入,提高这个库的质量

About

基于Flutter中`Image`类扩展的网络图片加载与本地图片加载

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published