gpt4 book ai didi

Android:Glide 不显示来自 URL 的大图像

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:24:38 25 4
gpt4 key购买 nike

我正在尝试将大型高分辨率 (3225x4800) 图像从 URL 加载到一家报业公司的 glide 中。我要加载的图像是这个 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);

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

有没有办法使用 Glide 和 TouchImageView 加载高分辨率图像,例如:7480x3740?我该怎么做?

最佳答案

我找到了满足我要求的解决方案。 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>() {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
imageView.setImageBitmap(resource);
}
});

在我的研究中,我还尝试了 Picasso 解决方案来处理高质量图像:

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

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

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

关于Android:Glide 不显示来自 URL 的大图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40571264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com