Android:Glide没有显示来自网址的大图片

Android:Glide没有显示来自网址的大图片,第1张

概述我正在尝试从URL加载一个大的高分辨率(3225×4800)图像到报纸公司的滑行.我想加载的图像是HighResImage.Stringurl="http://www.businessweekmindanao.com/content/wp-content/uploads/2015/10/fitness-and-wellness-poster-final.jpg";Glide.with(getActivity()).load(ur

我正在尝试从URL加载一个大的高分辨率(3225×4800)图像到报纸公司的滑行.我想加载的图像是High Res Image.

String url = "http://www.businessweekmindanao.com/content/wp-content/uploads/2015/10/fitness-and-wellness-poster-final.jpg";GlIDe.with(getActivity()).load(url).asBitmap().into(new SimpleTarget<Bitmap>() {    @OverrIDe    public voID onResourceReady(Bitmap resource, GlIDeAnimation<? super Bitmap> glIDeAnimation) {        imageVIEw.setimageBitmap(resource);    }});

我正在使用Mike Ortiz的touchImageVIEw来自这里提供的解决方案:https://github.com/MikeOrtiz/TouchImageView/issues/135从url加载资源时.但它似乎只适用于小分辨率图像,并且它不会加载高质量图像.

我从stackoverflow尝试了另一种解决方案:Android: not displayed ImageView with UIL and TouchImageView尝试修改Mike的库的onMeasure()方法.它适用于:

GlIDe.with(getActivity()).load(url)                .into(imageVIEwPrevIEw);

问题是它以非常低的分辨率加载图像.

有没有办法加载高分辨率图像,如:7480×3740,例如使用GlIDe和touchImageVIEw?我怎么做?

解决方法:

我找到了一个符合我要求的解决方案. overrIDe()方法可以解决这个问题.为目标分辨率设置更高的数字似乎是最终的解决方法,但数字越大,显示图像所需的时间就越长,因此实现预加载器/进度条是明智的.

GlIDe.with(getContext())    .asBitMap() //[for new glIDe versions]    .load(url)    //.asBitmap()[for older glIDe versions]    //.placeholder(R.drawable.default_placeholder)    .overrIDe(1600, 1600) // Can be 2000, 2000    .into(new BitmAPImageVIEwTarget(imageVIEwPrevIEw) {        @OverrIDe        public voID onResourceReady(Bitmap  drawable, GlIDeAnimation anim) {            super.onResourceReady(drawable, anim);            progressbar.setVisibility(VIEw.GONE);        }    });

relativeLayout xml上的自定义居中预加载器/进度条占位符指示器:

<Progressbar    androID:ID="@+ID/progressbar"    androID:layout_wIDth="wrap_content"    androID:layout_height="wrap_content"    androID:layout_centerInParent="true" />

这很简洁,因为在GlIDe中加载图像asBitmap()的另一个问题不会显示错误和预加载器/进度指示器的占位符:

GlIDe.with(getActivity())    .load(url).asBitmap()    .placeholder() //<== will simply not work:    .error() // <== is also useless    .into(new SimpleTarget<Bitmap>() {@OverrIDepublic voID onResourceReady(Bitmap resource, GlIDeAnimation<? super Bitmap> glIDeAnimation) {        imageVIEw.setimageBitmap(resource);    }});

在我的研究中,我也尝试过毕加索解决方案来处理高质量的图像:

Picasso.with(getContext())                .load(url)                .resize(1500, 0)                .placeholder(R.drawable.default_placeholder)                .error(R.drawable.download_error)                .into(imageVIEwPrevIEw);

最后,我对Glide版本很满意.

我希望这对任何可能面临同样挑战的人都有所帮助.

总结

以上是内存溢出为你收集整理的Android:Glide没有显示来自网址大图片全部内容,希望文章能够帮你解决Android:Glide没有显示来自网址的大图片所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1111207.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存