繁体   English   中英

从缓存Glide加载图像

[英]Loading images from cache Glide

我将Glide与recyclerview结合使用。当我第一次在设备上运行我的应用程序时
时间(使用android studio)图像已正确加载,但按回车后
完成应用程序,然后再次打开应用程序,无法加载图片,我必须点击卡片(点击
卡上的打开新活动)以加载显示图像(似乎
图像已缓存但未加载)我启用了所有类型的调试日志记录,但没有任何获取
异常或错误

Glide.with(mContext)
     .load(Uri.parse(image.getImage_url()))
     .listener(new RequestListener<Uri, GlideDrawable>() {
           @Override
           public boolean onException(Exception e, Uri model, Target<GlideDrawable> target, boolean isFirstResource) {
                   return false;
            }
            @Override
            public boolean onResourceReady(GlideDrawable resource, Uri model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource){
                if (dialog.isShowing())
                    dialog.dismiss();
                 return false;
             }
      })
      .into(holder.image);


recyclerview适配器中的这段代码

滑行版本3.7.0

这是适配器元素的布局

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/card_view"
    card_view:cardCornerRadius="4dp"
    android:clickable="true"
    android:focusable="true"
    android:layout_weight="1"
    android:layout_margin="2dp"
    android:background="?android:attr/selectableItemBackground"
    android:layout_height="wrap_content"
    android:layout_width="match_parent">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/activity_project_pro_image"
            android:layout_width="match_parent"
            android:background="@drawable/card_view_image_holder"
            android:scaleType="fitXY"
            android:layout_height="200dp" />

        <customfonts.MyTextViewLight
            android:id="@+id/activity_project_pro_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/design_name"
            android:textSize="18dp"
            android:paddingRight="10dp"
            android:paddingLeft="10dp"
            android:gravity="center_horizontal"
            android:textColor="#aa000000"/>
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="@color/under_line"
            />
        <LinearLayout
            android:layout_marginTop="4dp"
            android:layout_marginBottom="5dp"
            android:layout_width="match_parent"
            android:orientation="horizontal"
            android:layout_height="wrap_content">

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:layout_height="match_parent">
                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content">

                    <ImageButton
                        android:layout_gravity="left"
                        android:id="@+id/image_activity_share_btn"
                        android:layout_width="32dp"
                        android:background="?android:attr/selectableItemBackground"
                        android:src="@drawable/card_share"
                        android:scaleType="fitXY"
                        android:layout_marginRight="100dp"
                        android:contextClickable="true"
                        android:layout_height="32dp" />

                </LinearLayout>
                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content">
                    <ImageButton
                        android:layout_gravity="left"
                        android:id="@+id/image_activity_save_btn"
                        android:layout_width="32dp"
                        android:background="?android:attr/selectableItemBackground"
                        android:src="@drawable/card_downlaod"
                        android:scaleType="fitXY"
                        android:layout_marginRight="5dp"
                        android:contextClickable="true"
                        android:layout_height="32dp" />

                </LinearLayout>
            </LinearLayout>

        </LinearLayout>
    </LinearLayout>




</android.support.v7.widget.CardView>

抱歉,很长一段时间

几天前我也遇到了同样的问题。 我在滑行调用中添加了diskCacheStrategy(DiskCacheStrategy.ALL)和dontAnimate()方法,它开始正常工作。

Glide.with(mContext)
     .load(Uri.parse(image.getImage_url()))
     .diskCacheStrategy(DiskCacheStrategy.ALL)
     .dontAnimate()
     .listener(new RequestListener<Uri, GlideDrawable>() {
           @Override
           public boolean onException(Exception e, Uri model, Target<GlideDrawable> target, boolean isFirstResource) {
                   return false;
            }
            @Override
            public boolean onResourceReady(GlideDrawable resource, Uri model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource){
                if (dialog.isShowing())
                    dialog.dismiss();
                 return false;
             }
      })
      .into(holder.image);

让我知道它是否对您有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM