Articles of android glide

滑行图像加载超时增加

我正在使用滑动来从URL加载图像。 当我提取图像时,我在图像视图中显示了一个加载器。 正在获取的某些图像较大,因此发生慢速Internet连接超时并引发exception 如何增加超时?

滑行。 缓存到外部存储(SD卡)

我使用Glide在我的Android应用程序中加载图像。 3.5更新后,开发人员提供了GlideModule接口。 根据这篇文章 (磁盘缓存),我可以使用setDiskCache方法和ExternalCacheDiskCacheFactory设置缓存目录。 但我没有看到任何区别。 所有缓存仍在默认缓存目录中的内部存储上。 build.gradle : dependencies { … compile ‘com.github.bumptech.glide:glide:3.6.1’ } Android清单 : GlideConfig.java : public class GlideConfig implements GlideModule { @Override public void applyOptions(Context context, GlideBuilder builder) { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { Log.e(“GlideConfig”, “MEDIA_MOUNTED”); builder.setDiskCache( context.getString(R.string.app_name), 419430400));//400Mb //Environment.getExternalStorageDirectory().getPath() // + “/” // + context.getString(R.string.app_name) } else { Log.e(“GlideConfig”, […]

应用随机崩溃与致命信号7(SIGBUS),代码2或致命信号11(SIGSEGV),代码1

上下文 我正在创建一个应用程序,它应该在Fragment上显示一些图像,其中大部分都是从互联网上下载的。 我正在使用Glide来处理我在我的CardViews上的图像加载和我的图像滑块上的Fresco ( 这个问题解释了为什么我使用了两个图像库)。 lib的Fresco部分主要基于AndroidImageSlider 这个分支 。 重要提示:我尝试加载的图像可以是PNG或SVG 。 更多信息:我正在使用运行Android 5.0.2的Moto Maxx (国际版Droid Turbo )。 也发生在运行Android 4.4.2(cyanogen mod)的三星Galaxy S4上,但它的发生频率要低得多。 PS:我没有使用NDK。 问题 有时,我的应用程序只是崩溃,无处不在,甚至没有任何用户交互。 当它发生时,我在logcat上收到以下错误消息: Fatal signal 7 (SIGBUS), code 2, fault addr 0x9a74c060 in tid 21894 全栈: 04-07 07:59:08.110 21894 21894 F libc : Fatal signal 7 (SIGBUS), code 2, fault addr 0x9a74c060 in tid […]

在Recyclerview中使用Glide警告

我刚开始从Universal Image Loader转移到Glide。 但是,当在recyclerview中再次向下滚动时,我收到大量的警告信息。 W/Bitmap: Called reconfigure on a bitmap that is in use! This may cause graphical corruption! 如果我将Glide替换为另一个图像加载库,警告就会消失。 与图像相关的bindViewHolder中的代码: Glide.with(viewHolder.imageView.getContext()) .load(DisplayImageUtil.getImageUrl(item.getImageUrl(), 600)) .diskCacheStrategy(DiskCacheStrategy.ALL) .into(viewHolder.imageView); 在Nexus 5上测试过。

如何使用Glide通过字节数组加载图像?

我有一个图像内容byte []forms。 但是当我通过Glide加载它们时,会显示破碎的图像。 我正在做的事情如下所示。 Glide.with(context) .load(imageByteArray) .asBitmap() .placeholder(R.drawable.ic_broken) .into(rowImageView); imageByteArray成功转换为位图而不使用滑动。 所以图像字节数组没有错。 请指导我,我错过了什么? 我也在使用Glide库com.github.bumptech.glide:glide:3.6.1和Android支持库com.android.support:support-v13:23.0.1 编辑 好的,这就是我正在做的事情。 String imageBytes = “HVao14fpmtHSev3OgsrQNsawkFzXNcY3BsfQla6…” 上面定义的这个字符串是我从web API收到的实际图像的字节。 我正在将此String转换为像这样的字节数组 public static byte[] hexStringToByteArray(String s) { int len = s.length(); byte[] data = new byte[len / 2]; for (int i = 0; i < len; i += 2) { data[i / 2] = […]

如何在滑行中制作圆形裁剪图像的边框

默认情况下,滑行裁剪的图像没有边框我需要在圆圈图像中有边框。

通过Uri滑动加载本地图像。

我正在尝试使用Glide从本地存储加载图像但没有成功。 Glide.with(mContext) .load(pictureUri) // Uri of the picture .transform(new CircleTransform(..)) .into(profileAvatar); 这是我得到的错误: java.lang.Exception: Failed to load model: ‘/storage/emulated/0/DCIM/Camera/IMG_20150831_180900.jpg’ at com.bumptech.glide.request.GenericRequest.onSizeReady(GenericRequest.java:441) at com.bumptech.glide.request.target.ViewTarget$SizeDeterminer.getSize(ViewTarget.java:211) at com.bumptech.glide.request.target.ViewTarget.getSize(ViewTarget.java:100) at com.bumptech.glide.request.GenericRequest.begin(GenericRequest.java:272) at com.bumptech.glide.manager.RequestTracker.resumeRequests(RequestTracker.java:83) at com.bumptech.glide.RequestManager.resumeRequests(RequestManager.java:180) at com.bumptech.glide.RequestManager.onStart(RequestManager.java:203) at com.bumptech.glide.manager.ActivityFragmentLifecycle.onStart(ActivityFragmentLifecycle.java:50) at com.bumptech.glide.manager.SupportRequestManagerFragment.onStart(SupportRequestManagerFragment.java:135) at android.support.v4.app.Fragment.performStart(Fragment.java:1986) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1051) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1197) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1179) at android.support.v4.app.FragmentManagerImpl.dispatchStart(FragmentManager.java:1996) at android.support.v4.app.FragmentController.dispatchStart(FragmentController.java:176) at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:517) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1236) at android.app.Activity.performStart(Activity.java:6006) at […]

Glide:加载drawable但不扩展占位符

有没有办法使用Glide分配占位符但是将此图像保持原始比例? 我有一个可变大小的ImageView (取决于传入的图像),我在调用Glide.with().load().into()之前设置了它,我想为它使用占位符但不希望PH为resize到ImageView的大小,我希望它保持其原始大小。 到目前为止,我找不到办法做到这一点。

Glide:如何查找图像是否已缓存并使用缓存版本?

场景 : 我有一个大的GIF图像,我想在第一次使用Glide – 图像加载和缓存库打开应用程序时缓存。 在用户打开应用程序之后,我想显示缓存版本(如果存在)。 此GIF URL将在给定间隔后过期。 当它到期时,我会获取新的GIF URL并显示/缓存该URL以供将来使用。 我尝试了什么: 我在Glide的github页面上浏览了Caching和Cache Invalidation 。 我还去了谷歌集团的线程确保加载的图像只来自磁盘缓存 ,它显示了如何获取图像格式缓存。 我还通过了如何使某些特定图像问题的Glide缓存无效 。 从上面的链接我看到以下代码片段,其中显示了如何从缓存加载图像。 但是,这只会尝试从缓存中获取图像。 如果它不存在于缓存中,则它不会尝试从网络获取并失败: Glide.with(TheActivity.this) .using(new StreamModelLoader() { @Override public DataFetcher getResourceFetcher(final String model, int i, int i1) { return new DataFetcher() { @Override public InputStream loadData(Priority priority) throws Exception { throw new IOException(); } @Override public void […]

使用Glide预加载多个图像

我们正在尝试将图像预加载到缓存中以便以后加载它们(图像位于应用程序的Asset文件夹中) 我们尝试了什么: Glide.with(this) .load(pictureUri) .diskCacheStrategy(DiskCacheStrategy.ALL); Glide.with(this) .load(picture_uri) .diskCacheStrategy(DiskCacheStrategy.ALL) .preload(); 问题:只有在我们尝试加载/显示图像时才会缓存图像:必须先将它们加载到内存中,以便它们看起来更快。 Glide.with(this) .load(picture_uri) .into(imageView); 我们还尝试使用GlideModule来增加CacheMemory大小: public class GlideModule implements com.bumptech.glide.module.GlideModule { @Override public void applyOptions(Context context, GlideBuilder builder.setMemoryCache(new LruResourceCache(100000)); } @Override public void registerComponents(Context context, Glide glide) { } } 在清单中: 到目前为止没有任何工作。 任何想法? 我们尝试使用不可见的1 dp imageView,但结果是一样的: for(Drawing drawing: getDrawingsForTab(tab)){ Glide.with(this) .load(drawing.getImage().toUri()) .dontAnimate() .diskCacheStrategy(DiskCacheStrategy.ALL) .into(mPreloadCacheIv); for(Picture picture […]