# TinyPlugin **Repository Path**: zhangningning/TinyPlugin ## Basic Information - **Project Name**: TinyPlugin - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2019-05-29 - **Last Updated**: 2022-01-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TinyPlugin ## 背景 设计给的图片大部分都是未进行完全压缩,经常需要手动一个一个上传到 [https://tinypng.com/](https://tinypng.com/) 然后下载到本地,然后再放到工程里面,并且有时候也会会忘记压缩。 **TinyPNG** 插件可以实现一键压缩指定的图片,并且可以监控工程中是否有图片文件变动,进行批量压缩。 ## 使用说明 下载打包好的插件 TinyPNGPlugin.zip到本地,通过Android Studio -> Preference -> Plugins -> install plugin from disk. 选择文件安装完成后重启Android Studio。 ### 1. 指定文件压缩 选择要压缩的图片文件,右键,点击 TinyPNG,然后等待完成即可 ![image](https://gitee.com/zhangningning/TinyPlugin/raw/master/WX20190529-113617@2x.png) ![image](https://gitee.com/zhangningning/TinyPlugin/raw/master/WX20190529-113835@2x.png) 当选中的目标不是图片文件的时候 会提示只能压缩图片。 ### 2. 自动图片文件变动 当工程中文件有变动的时候 会自动提示是否需要压缩 ![image](https://gitee.com/zhangningning/TinyPlugin/raw/master/WX20190529-113443@2x.png) ![image](https://gitee.com/zhangningning/TinyPlugin/raw/master/WX20190529-113513@2x.png) **注意**: 1. 对于多文件变动的回调 有时候每次回调只会返回一个文件,所以避免同时弹出多个确认弹窗,对1秒内的回调进行了聚合,也就是1秒内的文件变动会聚合成一个确认,确认后同时进行压缩。 2. 为避免pull 别的代码也会触发文件变动,新增了一个拦截,1秒内文件的变动中如果有非图片文件,那么这次1秒内的文件变动都会排除在将要压缩的列表中。 3. 由于压缩后,源替换成压缩后的文件,也可能会触发文件变动消息,所以添加了一个对同一个文件变动的时间最小间隔:会有一个列表记录10秒内压缩过的文件,如果10秒有文件变动并且该文件在列表中,不会再压缩。 ## 其他说明 1. 对于授权问题,压缩的服务是基于TinyPNG的API, 需要使用TinyPNG提供的APIKEY,每个KEY每月有500次的额度。所以建议都各自去[https://tinypng.com/developers](https://tinypng.com/developers) 申请一个,不需要注册,提供提个邮箱就行。可以在~/.gradle/gradle.properties 中添加一项 : ``` idea.tinypng.key=xxxxx ``` 2. 虽然已经加了很多拦截,但还是有一些文件变动的误报,后面再看看有啥更好的办法,如果想关闭文件变动检测,可以在~/.gradle/gradle.properties 中添加 : ``` idea.tinypng.detect.change=0 ``` 该配置重启IDE生效