标签: android-glide

使用 Glide 进行多任务处理

我有一个可以在线和离线工作的 Android 应用程序,我正在使用 Glide 进行图像加载。下载数据库后,我想并行启动两个任务:将所有图像下载到磁盘并加载当前屏幕(然后是下一个屏幕)所需的所有图像。问题是要下载的图像量非常大,并且当前屏幕请求的图像似乎添加在同一下载队列的末尾。所以我最终得到“空”屏幕,直到所有图像都下载到磁盘缓存。我怎样才能让这些任务并行工作?

public class GlideActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_glide);
        downloadAllImages();
        updateUi();
    }

    private void updateUi() {
        ImageView imageView1 = (ImageView) findViewById(R.id.image_view1);
        ImageView imageView2 = (ImageView) findViewById(R.id.image_view2);
        ImageView imageView3 = (ImageView) findViewById(R.id.image_view3);
        cachedGlideRandomRequest().into(imageView1);
        cachedGlideRandomRequest().into(imageView2);
        cachedGlideRandomRequest().into(imageView3);
    }

    private void downloadAllImages() {
        for (int i = 0; i < 50; i++) {
            cachedGlideRandomRequest().preload();
        }
    }

    private DrawableRequestBuilder<String> cachedGlideRandomRequest() {
        return Glide.with(getApplicationContext())
                .load("https://unsplash.it/200/300?image=" + System.nanoTime() % 1000)
                .diskCacheStrategy(DiskCacheStrategy.SOURCE);
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要的是在downloadAllImages()仍在处理背景的同时在 ImageViews …

android android-glide

1
推荐指数
1
解决办法
958
查看次数

在android imageview中使用glide显示谷歌驱动器图像

我的驱动器网址是 - https://drive.google.com/file/d/0B3DFHb2-MdGYa2NMUkVtVkZ1V1k/view?usp=sharing

我想使用 glide 在 android imageview 中显示它。我尝试了很多方法来展示它。以下是我要显示的代码 -

Glide.with(getActivity()).load(readExcelFeed.getImage().toString()).into(ivQueImage);
Run Code Online (Sandbox Code Playgroud)

请让我知道其中有什么问题。

android imageview android-glide

1
推荐指数
1
解决办法
2994
查看次数

如何使用 Glide 检查图像是否已缓存在 android 移动设备中

我将我的图像及其缩小尺寸的图像(模糊)存储在我的 Amazon 服务器中,并将这两个路径存储在数据库中。

现在我想知道如果原始图像没有被缓存,如何首先显示模糊图像,点击下载它会下载原始图像。我在这里使用 Glide ......

我试过这个

Glide.with(this)
           .load(mainUrl)
           .diskCacheStrategy(DiskCacheStrategy.SOURCE)
           .thumbnail(Glide.with(this)
                .load(url)                                            
                .diskCacheStrategy(DiskCacheStrategy.SOURCE))
           .centerCrop()
           .into(imageView);
Run Code Online (Sandbox Code Playgroud)

但问题是它会在后台自动下载原始图像。

android android-glide

1
推荐指数
1
解决办法
5946
查看次数

如何使用 Glide 和 OkHttp 获取 http 响应头

我需要从图像中获取 http 响应标头。如何为 Glide 的每个请求创建拦截器?是否有必要创建一个 Glide 模块?

java android okhttp android-glide

1
推荐指数
1
解决办法
2648
查看次数

如何在按钮单击时使用 Glide 将图像保存到存储?

我正在显示来自服务器的图像,并滑入 recyclerview。当用户单击图像时,它会显示完整图像。我希望该用户可以在单击按钮时保存该图像。

 imageViewPreview = (ImageView) view.findViewById(R.id.image_preview);

        Photos image = images.get(position);
        Glide.with(getActivity())
                .load(image.getUrl())
                .thumbnail(Glide.with(getActivity()).load(R.drawable.loader))
                .fitCenter()
                .crossFade()
                .into(imageViewPreview);
Run Code Online (Sandbox Code Playgroud)

android android-glide

1
推荐指数
1
解决办法
4414
查看次数

当onLoadFailed()时,Glide使用默认图像

我使用滑行版本4.7.1,我想在onLoadFailed时使用默认图像。

这是我的代码

Glide.with(context).load(imageUrl).listener(new RequestListener<Drawable>() {
    @Override
    public boolean onLoadFailed(@Nullable GlideException e, Object model, com.bumptech.glide.request.target.Target<Drawable> target, boolean isFirstResource) {
        // fail
        // How can i use default image in imgvAssetPicture?
    }

    @Override
    public boolean onResourceReady(Drawable resource, Object model, com.bumptech.glide.request.target.Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
        // success
        imgvLoadingProgressbar.setVisibility(View.INVISIBLE);
        imgvAssetPicture.setVisibility(View.VISIBLE);
        return false;
    }
}).into(imgvAssetPicture);
Run Code Online (Sandbox Code Playgroud)

android android-glide

1
推荐指数
1
解决办法
2160
查看次数

Glide + CollapsingToolbarLayout奇怪的行为

使用CollapsingToolbarLayout,Toolbar和嵌入的ImageView时,我遇到了一个奇怪的行为.这是我的代码:

<android.support.design.widget.AppBarLayout
        android:id="@+id/bla"
        android:layout_width="match_parent"
        android:layout_height="256dp">

        <android.support.design.widget.CollapsingToolbarLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="@color/md_white_1000"
                android:minHeight="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Dark"
                app:theme="@style/ThemeOverlay.AppCompat.Light" />

            <ImageView
                android:id="@+id/fragment_kids_profile_pic"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scaleType="centerCrop" />

        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>
Run Code Online (Sandbox Code Playgroud)

和Glide建设者:

Glide.with(getActivity())
                .load(file)
                .fitCenter()
                .into(profilePicture);
Run Code Online (Sandbox Code Playgroud)

在通过Glide设置图像之前,工具栏行为完全正常,在我的情况下是"固定".设置图像后,工具栏布局丢失,图像发生(向上滚动后).一些照片要澄清:

在设置图片之前: 滚动之前在此输入图像描述在此输入图像描述在此输入图像描述

任何帮助,将不胜感激 !

android android-layout android-glide

0
推荐指数
1
解决办法
927
查看次数

缓存图像而不显示滑行

是否可以使用滑行缓存图像而不在imageView?中显示它。如果是,那又如何?

现在,我正在执行以下代码:

Glide
  .with(getApplicationContext())
  .load("imageUrl")                
  .override(windowWidth(),(int)windowWidth()*0.5))
  .diskCacheStrategy(DiskCacheStrategy.ALL);
Run Code Online (Sandbox Code Playgroud)

但这是行不通的,当应用打开时,滑行不是从缓存而是从URL加载图像。

android caching android-glide

0
推荐指数
2
解决办法
2320
查看次数

如何在Glide android中增加缓存大小?

根据文档

内部缓存工厂将磁盘缓存放置在应用程序的内部缓存目录中,并设置最大大小为250MB。

当我尝试在我的应用程序中实现一些脱机功能时,可能需要大于250MB的缓存大小。那么Glide是否允许修改缓存大小,或者我需要找到一种替代方法?如果是这样,我应该遵循什么机制?

我在文档中看到了一种增加这种方法的方法。

builder.setDiskCache(
new InternalCacheDiskCacheFactory(context, yourSizeInBytes));
Run Code Online (Sandbox Code Playgroud)

如何在我的代码中实现呢?

android caching image-caching android-glide

0
推荐指数
1
解决办法
1364
查看次数

Glide无法解析方法'signature(StringSignature)'

我正在使用滑行4.3.1

我想调用签名方法,但没有出现。

我的代码

Glide.with(context).load(context.getFilesDir().getPath() + "/" + imgName).into(imgView);
Run Code Online (Sandbox Code Playgroud)

我想做这个

Glide.with(context).load(context.getFilesDir().getPath() + "/" + imgName).signature(new StringSignature("someVersion")).into(imgView);
Run Code Online (Sandbox Code Playgroud)

我正在使用android studio,当我将鼠标悬停在签名方法上时,看到以下消息:无法解析方法'signature(StringSignature)'。

我的构建gradle:

dependencies {
  compile 'com.github.bumptech.glide:glide:4.3.1'
}
Run Code Online (Sandbox Code Playgroud)

android caching signature android-glide

0
推荐指数
1
解决办法
2074
查看次数