# ![logo_image] Sketch Image Loader
![Platform][platform_image]
[![Android Arsenal][android_arsenal_image]][android_arsenal_link]
[![License][license_image]][license_link]
[![API][min_api_image]][min_api_link]
![QQ Group][qq_group_image]
[English version of the README.md](README_EN.md)
Sketch 是 Android 上一款强大且全面的图片加载器,除了图片加载的必备功能外,还支持 GIF,手势缩放、分块显示超大图片、自动纠正图片方向、显示视频缩略图等功能
## 示例 APP
![sample_app_download_qrcode]
扫描二维码下载或[点我下载][sample_app_download_link]
## 特性
### 支持的特性
* `多种 URI 支持`. 支持 `http://`、`https://`、`asset://`、`content://`、`file:///sdcard/sample.jpg`、 `/sdcard/sample.jpg`、`drawable://`、`data:image/`、`data:img/`、`android.resource://`、`apk.icon://`、`app.icon://` 等 URI,通过 [UriModel] 还可以扩展支持的 URI
* `支持 gif 图片`. 集成了 [android-gif-drawable] 1.2.19 可以方便的显示 gif 图片
* `支持手势缩放`. 支持手势缩放功能,在 [PhotoView] 的基础上进行了优化,增加了滚动条,定位等功能
* `支持分块显示超大图`. 支持分块显示超大图功能,从此再大的图片也不怕了
* `支持三级缓存`. 通过 LruMemoryCache、LruDiskCache 复用图片,加快显示时间;通过 LruBitmapPool 复用 Bitmap,减少因 GC 而造成的卡顿
* `支持纠正图片方向`. 可纠正方向不正的图片,并且分块显示超大图功能也支持,仅限 JPEG 格式的图片
* `支持显示 APK 或 APP 图标`. 支持显示本地 APK 文件的图标或根据包名和版本号显示已安装APP的图标
* `支持 Base64 图片`. 支持解析 Base64 格式的图片
* `支持各种列表`. 在各种列表(ListView、RecyclerView)中循环使用不错位,并且不占用 setTag() 方法
* `自动防止加载过大 Bitmap` 可通过 maxSize 来控制加载到内存的图片的尺寸,默认为 ImageView的 layout_width 和 layout_height 或屏幕的宽高
* `独家 TransitionDrawable 支持`. 独家支持任意尺寸的两张图片使用 TransitionDrawable 过渡显示,保证不变形
* `只加载或只下载`. 除了 display() 方法可以显示图片之外,你还可以通过 load() 方法只加载图片到内存中或通过 download() 方法只下载图片到本地
* `移动数据下暂停下载`. 内置了移动数据下暂停下载图片的功能,你只需开启即可
* `自动选择合适的 Bitmap.Config`. 根据图片的 MimeType 自动选择合适的 Bitmap.Config,减少内存浪费,例如对于 JPEG 格式的图片就会使用 Bitmap.Config.RGB_565 解码
* `强大且灵活的自定义`. 可自定义 URI 支持、HTTP、下载、缓存、解码、处理、显示、占位图等各个环节
### 支持的 URI
|Type|Scheme|
|:---|:---|
|File in network|http://, https:// |
|File in SDCard|/, file:// |
|Content Resolver|content://|
|Asset Resource|asset:// |
|Drawable Resource|drawable:// |
|Base64|data:image/, data:/img/ |
|APK Icon|apk.icon:// |
|APP Icon|app.icon:// |
|Android Resource|android.resource:// |
详情请参考 [URI 类型及使用指南][uri]
### 支持的图片类型
* jpeg
* png
* gif
* bmp
* webp
## 开始使用
### 导入 Sketch
在 app 的 build.gradle 文件的 dependencies 节点中加入依赖
```groovy
compile 'me.panpf:sketch:$sketch_version'
```
请自行替换 `$sketch_version` 为最新的版本 [![sketch_version_image]][sketch_version_link]
如果需要播放 GIF 就添加 sketch-gif 的依赖
```groovy
compile 'me.panpf:sketch-gif:$sketch_gif_version'
```
请自行替换 `$sketch_gif_version` 为最新的版本 [![sketch_gif_version_image]][sketch_gif_version_link]
`Android Studio 会自动合并 AAR 中所包含的权限和混淆配置`
### 使用 SketchImageView 显示图片
```java
SketchImageView sketchImageView = (SketchImageView) findViewById(R.id.image_main);
sketchImageView.displayImage("http://t.cn/RShdS1f");
```
>* 更多类型 URI 的使用请参考 [URI 类型及使用指南][uri]
>* 更多 SketchImageView 使用方法请参考 [SketchImageView 使用指南][sketch_image_view]
### 文档
基础功能:
* [URI 类型及使用指南][uri]
* [SketchImageView 使用指南][sketch_image_view]
* [使用 Options 配置图片][options]
* [播放 GIF 图片][play_gif_image]
* [手势缩放、旋转图片][zoom]
* [分块显示超大图片][block_display]
* [使用 ShapeSize 在绘制时改变图片的尺寸][shape_size]
* [使用 ImageShaper 在绘制时改变图片的形状][image_shaper]
* [使用 ImageProcessor 在解码后改变图片][image_processor]
* [使用 ImageDisplayer 以动画的方式显示图片][image_displayer]
* [使用 MaxSize 读取合适尺寸的缩略图,节省内存][max_size]
* [使用 Resize 精确修改图片的尺寸][resize]
* [使用 StateImage 设置占位图片和状态图片][state_image]
* [监听开始、成功、失败以及下载进度][listener]
提升用户体验:
* [使用 TransitionImageDisplayer 以自然过渡渐的变方式显示图片][transition_image_displayer]
* [使用 thumbnailMode 属性显示更清晰的缩略图][thumbnail_mode]
* [使用 cacheProcessedImageInDisk 属性缓存需要复杂处理的图片,提升显示速度][cache_processed_image_in_disk]
* [使用 MemoryCacheStateImage 先显示已缓存的较模糊的图片,然后再显示清晰的图片][memory_cache_state_image]
* [移动数据或有流量限制的 WIFI 下暂停下载图片,节省流量][pause_download]
* [列表滑动时暂停加载图片,提升列表滑动流畅度][pause_load]
更多:
* [UriModel 详解及扩展 URI][uri_model]
* [统一修改 Options][options_filter]
* [显示视频缩略图][display_video_thumbnail]
* [管理多个 Options][options_manage]
* [只加载或下载图片][load_and_download]
* [显示 APK 或已安装 APP 的图标][display_apk_or_app_icon]
* [自动纠正图片方向][correct_image_orientation]
* [复用 Bitmap 降低 GC 频率,减少卡顿][bitmap_pool]
* [在内存中缓存 Bitmap 提升显示速度][memory_cache]
* [在磁盘上缓存图片原文件,避免重复下载][disk_cache]
* [发送 HTTP 请求][http_stack]
* [取消请求][cancel_request]
* [监控 Sketch 的异常][error_tracker]
* [日志][log]
* [延迟并统一配置 Sketch][initializer]
* [配置混淆(Proguard)][proguard_config]
## 更新日志
Please view the [CHANGELOG.md] file
## 特别感谢
* [koral--] - [android-gif-drawable]
* [chrisbanes] - [PhotoView]
* [bumptech] - [glide](BitmapPool)
## 交流群
* ![QQ Group][qq_group_image]
## License
Copyright (C) 2019 Peng fei Pan <panpfpanpf@outlook.me>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
[logo_image]: docs/res/logo.png
[platform_image]: https://img.shields.io/badge/Platform-Android-brightgreen.svg
[android_arsenal_image]: https://img.shields.io/badge/Android%20Arsenal-Sketch-orange.svg?style=true
[android_arsenal_link]: https://android-arsenal.com/details/1/4165
[license_image]: https://img.shields.io/badge/License-Apache%202-blue.svg
[license_link]: https://www.apache.org/licenses/LICENSE-2.0
[sketch_version_image]: https://api.bintray.com/packages/panpf/maven/sketch/images/download.svg
[sketch_version_link]: https://bintray.com/panpf/maven/sketch/_latestVersion#files
[sketch_gif_version_image]: https://api.bintray.com/packages/panpf/maven/sketch-gif/images/download.svg
[sk
没有合适的资源?快使用搜索试试~ 我知道了~
sketch:Sketch是Android上一个强大且全面的图片加载器,支持GIF,手势缩放以及分块显示超大图片。Sketch是...
共525个文件
java:257个
kt:92个
xml:74个
2 下载量 95 浏览量
2021-01-28
11:31:12
上传
评论
收藏 25.47MB ZIP 举报
温馨提示
素描图像加载器 Sketch是Android上层强大且全面的图片加载器,除了图片加载的必备功能外,还支持GIF,手势缩放,分块显示超大图片,自动校正图片方向,显示视频片段等功能 示例APP 扫描二维码下载或 特性 支持的特性 多种 URI 支持。支持http:// , https:// , asset:// , content:// , file:///sdcard/sample.jpg , /sdcard/sample.jpg , drawable:// , data:image/ / , data:img/ , android.resource:// , apk.icon:// , app.icon://等URI,通过还可以扩展支持的URI 支持 gif 图片。集成了 1.2.19可以方便的显示gif图片 支持手势缩放。支持手势缩放功能,在的基础上进行了优化,增加了滚动条,定位等功能 支持分块显示超大图。支持分块显示超大图功能,从此再大的图片也不怕了 支持三级缓存。通过LruMemoryCache,LruDiskCache添加图片,加快显示时间;通过LruBitmapPool填充位
资源详情
资源评论
资源推荐
收起资源包目录
sketch:Sketch是Android上一个强大且全面的图片加载器,支持GIF,手势缩放以及分块显示超大图片。Sketch是Android上强大而全面的图像加载器,支持GIF,手势缩放,超大块显示图片 (525个子文件)
sketch-sample.apk 1.81MB
gradlew.bat 2KB
sample.bmp 791KB
sample.gif 78KB
.gitignore 334B
.gitignore 12B
.gitignore 7B
.gitignore 7B
.gitignore 7B
gradlew 5KB
bugly_1.2.3.8__release.jar 187KB
pinyin4j-2.5.0.jar 178KB
gradle-wrapper.jar 49KB
ExifInterface.java 173KB
SketchUtils.java 45KB
DiskLruCache.java 38KB
DisplayHelper.java 33KB
BlockManager.java 32KB
GifDrawable.java 32KB
ScaleDragHelper.java 26KB
Configuration.java 25KB
SLog.java 24KB
ImageZoomer.java 22KB
ViewFunctions.java 20KB
GifTextureView.java 17KB
BlockDisplayer.java 17KB
LoadOptions.java 16KB
ImageDownloader.java 16KB
FunctionPropertyView.java 13KB
FileScanner.java 13KB
DisplayOptions.java 13KB
DisplayRequest.java 13KB
LoadHelper.java 13KB
LruDiskCache.java 12KB
GaussianBlurImageProcessor.java 12KB
LruBitmapPool.java 12KB
ImageOrientationCorrector.java 12KB
FreeRideManager.java 11KB
ImageSizeCalculator.java 11KB
GifInfoHandle.java 11KB
Sketch.java 11KB
GifDrawableInit.java 11KB
LoadRequest.java 10KB
GifAnimationMetaData.java 10KB
LruCache.java 10KB
SketchShapeBitmapDrawable.java 10KB
BitmapPoolUtils.java 10KB
ScaleDragGestureDetector.java 10KB
DecodeHandler.java 9KB
SketchGifDrawable.java 9KB
AdaptiveTwoLevelScales.java 9KB
SketchUtilsTest.java 9KB
CallbackHandler.java 9KB
SketchGifDrawableImpl.java 9KB
OptionsFilterManager.java 9KB
GifTextView.java 8KB
SizeConfigStrategy.java 8KB
ErrorTracker.java 8KB
HurlStack.java 8KB
ThumbnailModeDecodeHelper.java 8KB
FunctionCallbackView.java 8KB
ImageDecoder.java 8KB
ResizeCalculator.java 8KB
ImageDecodeUtils.java 7KB
DrawableWrapper.java 7KB
RequestExecutor.java 7KB
DownloadRequest.java 7KB
MakerStateImage.java 7KB
ScrollBarHelper.java 7KB
ProcessedCacheDecodeHelper.java 7KB
LruMemoryCache.java 6KB
SketchGifFactory.java 6KB
InputSource.java 6KB
DownloadHelper.java 6KB
RoundRectImageShaper.java 6KB
ShowPressedFunction.java 6KB
ProcessedImageCache.java 6KB
NormalDecodeHelper.java 6KB
CallbackHandler.java 6KB
FreeRideDisplayRequest.java 6KB
RequestFunction.java 6KB
ShowDownloadProgressFunction.java 5KB
RoundRectImageProcessor.java 5KB
AbsDiskCacheUriModel.java 5KB
BlockExecutor.java 5KB
ReflectionImageProcessor.java 5KB
ImageRegionDecoder.java 5KB
ShowImageFromFunction.java 5KB
FreeRideDownloadRequest.java 5KB
GifDecoder.java 5KB
GroupedLinkedMap.java 5KB
ZoomInImageDisplayer.java 5KB
BaseRequest.java 5KB
Resize.java 5KB
HttpStack.java 5KB
GifTexImage2D.java 5KB
ZoomOutImageDisplayer.java 5KB
XpkInfo.java 5KB
ViewFunction.java 5KB
GifViewUtils.java 5KB
共 525 条
- 1
- 2
- 3
- 4
- 5
- 6
weixin_38745891
- 粉丝: 4
- 资源: 1000
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0