diff --git a/docs/wiki/cancel_request.md b/docs/wiki/cancel_request.md index 9a02f87d23..547b76dfa9 100644 --- a/docs/wiki/cancel_request.md +++ b/docs/wiki/cancel_request.md @@ -7,6 +7,6 @@ Sketch会自动取消请求,因此你不必刻意关注怎么去取消一个 #### 如何主动取消请求? >* 方法1:在执行commit()或SketchImageView.display***Image()方法之后你会得到一个Request, 你可以通过Request的isCanceled()方法查看请求是否结束会或通过Request的cancel()方法取消请求 ->* 方法2:你可以通过Sketch.cancel(ImageViewInterface)方法来取消请求 +>* 方法2:你可以通过Sketch.cancel(SketchView)方法来取消请求 ``取消请求的时候如果正在读取数据,就会立马停止读取,已经读取的数据就算浪费了`` diff --git a/sketch/src/main/java/me/xiaopan/sketch/Sketch.java b/sketch/src/main/java/me/xiaopan/sketch/Sketch.java index 6789de7b38..0e212d803a 100644 --- a/sketch/src/main/java/me/xiaopan/sketch/Sketch.java +++ b/sketch/src/main/java/me/xiaopan/sketch/Sketch.java @@ -35,9 +35,9 @@ import me.xiaopan.sketch.util.SketchUtils; /** - * Sketch是一个功能强大且全面的图片加载器,可以从网络或者本地加载图片,支持gif、手势缩放以及分块显示超大图 + * Sketch 是一个功能强大且全面的图片加载器,可以从网络或者本地加载图片,支持 gif、手势缩放以及分块显示超大图 * @@ -54,9 +54,9 @@ private Sketch(Context context) { } /** - * 获取Sketch实例 + * 获取 Sketch 实例 * - * @param context 用于初始化Sketch + * @param context 用于初始化 Sketch * @return Sketch */ public static Sketch with(Context context) { @@ -81,8 +81,8 @@ public static Sketch with(Context context) { /** * 取消请求 * - * @param sketchView 会通过ImageViewInterface的Drawable找到正在执行的请求,然后取消它 - * @return true:当前ImageView有正在执行的任务并且取消成功;false:当前ImageView没有正在执行的任务 + * @param sketchView 会通过 SketchView 的 Drawable 找到正在执行的请求,然后取消它 + * @return true:当前 SketchView 有正在执行的任务并且取消成功;false:当前 SketchView 没有正在执行的任务 */ @SuppressWarnings("unused") public static boolean cancel(SketchView sketchView) { @@ -105,15 +105,15 @@ public Configuration getConfiguration() { } /** - * 下载图片 + * 根据 URI 下载图片 * - * @param uri 图片Uri,支持以下几种 + * @param uri 图片 Uri,支持以下几种 * * @param listener 监听下载过程 - * @return DownloadHelper 你可以继续通过DownloadHelper设置一下参数,最后调用其commit()方法提交即可 + * @return DownloadHelper 你可以继续通过 DownloadHelper 设置参数,最后调用其 commit() 方法提交 */ @SuppressWarnings("unused") public DownloadHelper download(String uri, DownloadListener listener) { @@ -121,9 +121,9 @@ public DownloadHelper download(String uri, DownloadListener listener) { } /** - * 根据URI加载图片 + * 根据 URI 加载图片 * - * @param uri 图片Uri,支持以下几种 + * @param uri 图片 Uri,支持以下几种 * * @param listener 监听下载过程 - * @return LoadHelper 你可以继续通过LoadHelper设置一下参数,最后调用其commit()方法提交即可 + * @return LoadHelper 你可以继续通过 LoadHelper 设置参数,最后调用其 commit() 方法提交 */ public LoadHelper load(String uri, LoadListener listener) { return configuration.getHelperFactory().getLoadHelper(this, uri).listener(listener); } /** - * 加载Asset中的图片 + * 加载 Asset 中的图片 * - * @param assetResName asset中图片文件的名称 + * @param assetResName asset 中图片文件的名称 * @param listener 监听加载过程 - * @return LoadHelper 你可以继续通过LoadHelper设置一下参数,最后调用其commit()方法提交即可 + * @return LoadHelper 你可以继续通过 LoadHelper 设置参数,最后调用其 commit() 方法提交 */ @SuppressWarnings("unused") public LoadHelper loadFromAsset(String assetResName, LoadListener listener) { @@ -159,7 +159,7 @@ public LoadHelper loadFromAsset(String assetResName, LoadListener listener) { * * @param drawableResId 图片资源的ID * @param listener 监听加载过程 - * @return LoadHelper 你可以继续通过LoadHelper设置一下参数,最后调用其commit()方法提交即可 + * @return LoadHelper 你可以继续通过 LoadHelper 设置参数,最后调用其 commit() 方法提交 */ @SuppressWarnings("unused") public LoadHelper loadFromResource(int drawableResId, LoadListener listener) { @@ -168,14 +168,14 @@ public LoadHelper loadFromResource(int drawableResId, LoadListener listener) { } /** - * 加载URI指向的图片 + * 加载 URI 指向的图片 * - * @param uri 图片Uri,会通过ContentResolver().openInputStream(Uri)方法来读取图片 + * @param uri 图片 Uri,会通过 ContentResolver().openInputStream(Uri) 方法来读取图片 * @param listener 监听加载过程 - * @return LoadHelper 你可以继续通过LoadHelper设置一下参数,最后调用其commit()方法提交即可 + * @return LoadHelper 你可以继续通过 LoadHelper 设置参数,最后调用其 commit() 方法提交 */ @SuppressWarnings("unused") - public LoadHelper loadFromURI(Uri uri, LoadListener listener) { + public LoadHelper loadFromContent(Uri uri, LoadListener listener) { return configuration.getHelperFactory().getLoadHelper(this, uri.toString()).listener(listener); } @@ -184,7 +184,7 @@ public LoadHelper loadFromURI(Uri uri, LoadListener listener) { * * @param filePath APP 的路径 * @param listener 监听加载过程 - * @return LoadHelper 你可以继续通过 LoadHelper 设置一下参数,最后调用其 commit() 方法提交即可 + * @return LoadHelper 你可以继续通过 LoadHelper 设置参数,最后调用其 commit() 方法提交 */ @SuppressWarnings("unused") public LoadHelper loadApkIcon(String filePath, LoadListener listener) { @@ -198,7 +198,7 @@ public LoadHelper loadApkIcon(String filePath, LoadListener listener) { * @param packageName APP 的包名 * @param versionCode APP 的版本号 * @param listener 监听加载过程 - * @return LoadHelper 你可以继续通过 LoadHelper 设置一下参数,最后调用其 commit() 方法提交即可 + * @return LoadHelper 你可以继续通过 LoadHelper 设置参数,最后调用其 commit() 方法提交 */ @SuppressWarnings("unused") public LoadHelper loadAppIcon(String packageName, int versionCode, LoadListener listener) { @@ -207,7 +207,7 @@ public LoadHelper loadAppIcon(String packageName, int versionCode, LoadListener } /** - * 显示图片 + * 根据 URI 显示图片 * * @param uri 图片Uri,支持以下几种 * - * @param sketchView 默认实现是SketchImageView - * @return DisplayHelper 你可以继续通过DisplayHelper设置一下参数,最后调用其commit()方法提交即可 + * @param sketchView Sketch 对 ImageView 的规范接口,Sketch 对 ImageView 的规范接口,默认实现是 SketchImageView + * @return DisplayHelper 你可以继续通过 DisplayHelper 设置参数,最后调用其 commit() 方法提交 */ public DisplayHelper display(String uri, SketchView sketchView) { return configuration.getHelperFactory().getDisplayHelper(this, uri, sketchView); @@ -231,8 +231,8 @@ public DisplayHelper display(String uri, SketchView sketchView) { * 显示Asset中的图片 * * @param assetResName asset中图片文件的名称 - * @param sketchView 默认实现是SketchImageView - * @return DisplayHelper 你可以继续通过DisplayHelper设置一下参数,最后调用其commit()方法提交即可 + * @param sketchView Sketch 对 ImageView 的规范接口,Sketch 对 ImageView 的规范接口,默认实现是 SketchImageView + * @return DisplayHelper 你可以继续通过 DisplayHelper 设置参数,最后调用其 commit() 方法提交 */ public DisplayHelper displayFromAsset(String assetResName, SketchView sketchView) { String uri = AssetUriModel.makeUri(assetResName); @@ -243,8 +243,8 @@ public DisplayHelper displayFromAsset(String assetResName, SketchView sketchView * 显示资源中的图片 * * @param drawableResId 图片资源的ID - * @param sketchView 默认实现是SketchImageView - * @return DisplayHelper 你可以继续通过DisplayHelper设置一下参数,最后调用其commit()方法提交即可 + * @param sketchView Sketch 对 ImageView 的规范接口,Sketch 对 ImageView 的规范接口,默认实现是 SketchImageView + * @return DisplayHelper 你可以继续通过 DisplayHelper 设置参数,最后调用其 commit() 方法提交 */ public DisplayHelper displayFromResource(int drawableResId, SketchView sketchView) { String uri = DrawableUriModel.makeUri(drawableResId); @@ -252,11 +252,11 @@ public DisplayHelper displayFromResource(int drawableResId, SketchView sketchVie } /** - * 显示来自ContentProvider的图片 + * 显示来自 ContentProvider 的图片 * - * @param uri 图片Uri,会通过ContentResolver().openInputStream(Uri)方法来读取图片 - * @param sketchView 默认实现是SketchImageView - * @return DisplayHelper 你可以继续通过DisplayHelper设置一下参数,最后调用其commit()方法提交即可 + * @param uri 来自 ContentProvider 的图片的 Uri,会通过 ContentResolver().openInputStream(Uri) 方法来读取图片 + * @param sketchView Sketch 对 ImageView 的规范接口,Sketch 对 ImageView 的规范接口,默认实现是 SketchImageView + * @return DisplayHelper 你可以继续通过 DisplayHelper 设置参数,最后调用其 commit() 方法提交 */ public DisplayHelper displayFromContent(Uri uri, SketchView sketchView) { return configuration.getHelperFactory().getDisplayHelper(this, uri != null ? uri.toString() : null, sketchView); @@ -266,8 +266,8 @@ public DisplayHelper displayFromContent(Uri uri, SketchView sketchView) { * 显示已安装 APK 文件的图标 * * @param filePath APK 的路径 - * @param sketchView 默认实现是 SketchImageView - * @return DisplayHelper 你可以继续通过 DisplayHelper 设置一下参数,最后调用其 commit() 方法提交即可 + * @param sketchView Sketch 对 ImageView 的规范接口,默认实现是 SketchImageView + * @return DisplayHelper 你可以继续通过 DisplayHelper 设置参数,最后调用其 commit() 方法提交 */ @SuppressWarnings("unused") public DisplayHelper displayApkIcon(String filePath, SketchView sketchView) { @@ -280,8 +280,8 @@ public DisplayHelper displayApkIcon(String filePath, SketchView sketchView) { * * @param packageName APP 的包名 * @param versionCode APP 的版本号 - * @param sketchView 默认实现是 SketchImageView - * @return DisplayHelper 你可以继续通过 DisplayHelper 设置一下参数,最后调用其 commit() 方法提交即可 + * @param sketchView Sketch 对 ImageView 的规范接口,默认实现是 SketchImageView + * @return DisplayHelper 你可以继续通过 DisplayHelper 设置参数,最后调用其 commit() 方法提交 */ public DisplayHelper displayAppIcon(String packageName, int versionCode, SketchView sketchView) { String uri = AppIconUriModel.makeUri(packageName, versionCode); @@ -289,9 +289,9 @@ public DisplayHelper displayAppIcon(String packageName, int versionCode, SketchV } /** - * 修整内存缓存,4.0以下你需要重写Application的onTrimMemory(int)方法,然后调用这个方法 + * 修整内存缓存,4.0 以下你需要重写 Application 的 onTrimMemory(int) 方法,然后调用这个方法 * - * @param level 修剪级别,对应APP的不同状态,对应ComponentCallbacks2里的常量 + * @param level 修剪级别,对应APP的不同状态,对应 ComponentCallbacks2 里的常量 * @see android.content.ComponentCallbacks2 */ public void onTrimMemory(int level) { @@ -310,7 +310,7 @@ public void onTrimMemory(int level) { } /** - * 当内存低时直接清空全部内存缓存,4.0以下你需要重写Application的onLowMemory方法,然后调用这个方法 + * 当内存低时直接清空全部内存缓存,4.0 以下你需要重写 Application 的 onLowMemory 方法,然后调用这个方法 */ public void onLowMemory() { // ICE_CREAM_SANDWICH以上版本已经自动注册了onLowMemory监听,因此无需再在你的Application的onLowMemory方法中调用此方法 diff --git a/sketch/src/main/java/me/xiaopan/sketch/request/DisplayRequest.java b/sketch/src/main/java/me/xiaopan/sketch/request/DisplayRequest.java index dd23153d3a..6a8319e670 100644 --- a/sketch/src/main/java/me/xiaopan/sketch/request/DisplayRequest.java +++ b/sketch/src/main/java/me/xiaopan/sketch/request/DisplayRequest.java @@ -304,7 +304,7 @@ private void displayImage(Drawable drawable) { displayOptions.getShapeSize(), displayOptions.getImageShaper()); } - SketchView viewInterface = requestAndViewBinder.getImageViewInterface(); + SketchView viewInterface = requestAndViewBinder.getView(); if (SLog.isLoggable(SLog.LEVEL_DEBUG | SLog.TYPE_FLOW)) { String drawableInfo = "unknown"; if (drawable instanceof SketchRefDrawable) { @@ -338,8 +338,8 @@ protected void runErrorInMainThread() { // 显示失败图片 if (displayOptions.getErrorImage() != null) { - Drawable errorDrawable = displayOptions.getErrorImage().getDrawable(getContext(), requestAndViewBinder.getImageViewInterface(), displayOptions); - displayOptions.getImageDisplayer().display(requestAndViewBinder.getImageViewInterface(), errorDrawable); + Drawable errorDrawable = displayOptions.getErrorImage().getDrawable(getContext(), requestAndViewBinder.getView(), displayOptions); + displayOptions.getImageDisplayer().display(requestAndViewBinder.getView(), errorDrawable); } else { if (SLog.isLoggable(SLog.LEVEL_DEBUG | SLog.TYPE_FLOW)) { SLog.d(getLogName(), "failedDrawable is null. runErrorInMainThread. %s. %s", diff --git a/sketch/src/main/java/me/xiaopan/sketch/request/RequestAndViewBinder.java b/sketch/src/main/java/me/xiaopan/sketch/request/RequestAndViewBinder.java index f7b3d438c7..9775c0608f 100644 --- a/sketch/src/main/java/me/xiaopan/sketch/request/RequestAndViewBinder.java +++ b/sketch/src/main/java/me/xiaopan/sketch/request/RequestAndViewBinder.java @@ -29,14 +29,14 @@ public class RequestAndViewBinder { private WeakReference imageViewReference; public RequestAndViewBinder(SketchView imageView) { - this.imageViewReference = new WeakReference(imageView); + this.imageViewReference = new WeakReference<>(imageView); } public void setDisplayRequest(DisplayRequest displayRequest) { this.displayRequest = displayRequest; } - public SketchView getImageViewInterface() { + public SketchView getView() { final SketchView sketchView = imageViewReference.get(); if (displayRequest != null) { DisplayRequest holderDisplayRequest = SketchUtils.findDisplayRequest(sketchView); @@ -51,6 +51,6 @@ public SketchView getImageViewInterface() { } public boolean isBroken() { - return getImageViewInterface() == null; + return getView() == null; } } diff --git a/sketch/src/main/java/me/xiaopan/sketch/util/SketchUtils.java b/sketch/src/main/java/me/xiaopan/sketch/util/SketchUtils.java index 2795ddf942..1aa972aac9 100644 --- a/sketch/src/main/java/me/xiaopan/sketch/util/SketchUtils.java +++ b/sketch/src/main/java/me/xiaopan/sketch/util/SketchUtils.java @@ -622,7 +622,7 @@ public static File buildCacheDir(Context context, String dirName, boolean compat } /** - * 从ImageViewInterface上查找DisplayRequest + * 从 SketchView 上查找 DisplayRequest */ public static DisplayRequest findDisplayRequest(SketchView sketchView) { if (sketchView != null) {