Glide使用总结

来源:互联网 发布:海岛奇兵雕像数据 编辑:程序博客网 时间:2024/04/30 00:14

Glide.with(fragment).load((chat.getMedia().getFilename()))
.bitmapTransform(new CenterCrop(mActivity), new MaskTransformation(mActivity, resId))
.override(size.getWidth(), size.getHeight())
.placeholder(R.drawable.ic_article_image_defalut).into(holder.mImage);
MaskTransformation() 必须要override() 否则会出现意想不到的结果

Glide同步下载文件(优先从缓存加载)

File file = Glide.with(activity).load(url).downloadOnly(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL).get();

Glide同步下载bitmap(每次都会解码为bitmap效率低)

Bitmap theBitmap = Glide.with(SomeActivity.this).load(url).asBitmap().into(-1,-1).get();

Glide与RxJava结合下载文件

public void downLoadFile(final Activity activity, final String url){                Subscription subscribe = Observable                        .create(new Observable.OnSubscribe<File>() {                            @Override                            public void call(Subscriber<? super File> subscriber) {                                try {                                    // 如果是下载原图那么可以使用                                    // Bitmap  bitmap = Glide.with(context).load(url).downloadOnly(Target.SIZE_ORIGINAL,Target.SIZE_ORIGINAL).get()                                    // 如果是下载原图文件那么可以使用                                    // 这个是关键代码                                    File file = Glide.with(activity).load(url).downloadOnly(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL).get();                                    subscriber.onNext(file);                                    subscriber.onCompleted();                                } catch (InterruptedException | ExecutionException e) {                                    subscriber.onError(e);                                }                            }                        })                        .subscribeOn(Schedulers.io())                        .map(new Func1<File, File>() {                            @Override                            public File call(File file) {                                File dest = AndroidUtils.getTmpFile(getDstDir("image/"), null);                                try {                                    FileUtils.copyFile(file, dest);                                    return dest;                                } catch (IOException e) {                                    throw OnErrorThrowable.from(e);                                }                            }                        })                        .observeOn(AndroidSchedulers.mainThread())                        .subscribe(new Observer<File>() {                            @Override                            public void onNext(File file) {                                Toost.message("该图片已被保持至" + file.getPath());                            }                            @Override                            public void onCompleted() {                            }                            @Override                            public void onError(Throwable e) {                                Toost.message("保存图片失败,请检查网络连接是否正常!");                            }                        });}

Glide带进度的文件下载

public void downLoadFile(final Activity activity, final String url)SimpleTarget<File> simpleTarget = new SimpleTarget<File>() {            @Override            public void onResourceReady(File resource, GlideAnimation<? super File> glideAnimation) {                mVideoPlayerManager.playNewVideo(null, mVideoView, resource.getAbsolutePath());            }        };        ProgressTarget<String, File> trget = new ProgressTarget<String, File>(url, simpleTarget) {            int preProgress = 0;            @Override            protected void onConnecting() {            }            @Override            protected void onDownloading(long bytesRead, long expectedLength) {                int progress = (int) (((double) bytesRead / (double) expectedLength) * 100);                if (progress != preProgress) {                    preProgress = progress;                    mVideoLoding.setProgress(progress);                }            }            @Override            protected void onDownloaded() {            }            @Override            protected void onDelivered() {            }        };        Glide.with(getActivity()).load(url).downloadOnly(trget);        }

Glide带进度的图片加载

public void ddd(){ Glide.with(this).load(lUrl).asBitmap().placeholder(R.drawable.user_icon_default).fitCenter().listener(new RequestListener<String, Bitmap>() {                @Override                public boolean onException(Exception e, String model, Target<Bitmap> target, boolean isFirstResource) {                    if (spinner != null && getActivity() != null) {                        spinner.startAnimation(AnimationUtils.loadAnimation(getActivity(), R.anim.abc_fade_out));                        spinner.setVisibility(View.INVISIBLE);                        Toost.message("获取图片失败");                    }                    return false;                }                @Override                public boolean onResourceReady(Bitmap resource, String model, Target<Bitmap> target, boolean isFromMemoryCache, boolean isFirstResource) {                    if (spinner != null && getActivity() != null) {                        spinner.startAnimation(AnimationUtils.loadAnimation(getActivity(), R.anim.abc_fade_out));                        spinner.setVisibility(View.INVISIBLE);                    }                    backView.setVisibility(View.INVISIBLE);                    return false;                }            }).into(new ProgressTarget<String, Bitmap>(lUrl, new BitmapImageViewTarget(photoView)) {                @Override                protected void onConnecting() {                }                @Override                protected void onDownloading(long bytesRead, long expectedLength) {                    int progress = (int) (((double) bytesRead / (double) expectedLength) * 100);                    if (spinner != null && getActivity() != null) {                        spinner.setProgress(progress);                    }                }                @Override                protected void onDownloaded() {                }                @Override                protected void onDelivered() {                }            });}
0 0
原创粉丝点击