标签: android-glide

Glide,如何在收取请求时显示图像缓存?

当互联网速度很慢时,Glide需要很长时间来显示图像,我需要立即显示图像.

android android-glide

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

RecyclerView与StaggeredGridLayoutManager一起从Glide加载图像

我有表示问题RecyclerViewStaggeredGridLayoutManager其项包含一个imageview和所述图像中装入imageview使用glide.我面临的问题是,在图像加载后,它们不会交错并且尺寸相同,两列之间也存在很大的差距.如何在列中没有间隙的情况下改变图像的高度?

android staggered-gridview staggeredgridlayout android-recyclerview android-glide

3
推荐指数
2
解决办法
5221
查看次数

为什么我的 android 应用程序消耗太多内存?

情况是这样的:我有一个活动,它有一个工具栏、一个 Tablayout 和一个 View Pager(将包含 5 个片段)

在第一个片段中,我有一个布局,其中将包含一个默认片段,该片段将具有一个包含两列的 Recycler 视图。上面的每个元素都有一张从 Internet 下载的图像(使用 Glide 并保存在缓存中),当用户单击支架(列表中的一个元素)时,会将“布局容器”上的这个默认片段更改为另一个将有一个新的 Recycler View,其中包含使用 Glide 从 Internet 下载的图像。类似于 Instagram 搜索页面。

我认为 Glide 是问题所在,但我对所有代码进行了注释,当我在模拟器上运行该应用程序时,它会消耗更多或更少的 89 MB RAM。

额外的信息

  • 任何片段内 RView 上的每个元素都是通过使用 Volley 下载 JSONArray 创建的,我将请求放入 MySingleton 队列并将上下文定义为 getContext()(我应该使用 getActivity().ApplicationContext() 而不是 getContext() 当代码来自片段?)

(在 Activity 内的视图寻呼机内的片段内)

MySingleton.getInstance(getContext()).addToRequestQueue(req);
Run Code Online (Sandbox Code Playgroud)

然后它下载图片 URL 并使用 Glide 在视图上收费。

if(holder.publication.getPicture() != null ){
        Glide.with(holder.ctx).load(holder.publication.getPicture()).diskCacheStrategy(DiskCacheStrategy.ALL).centerCrop().into(holder.picture_imgView);
    }
Run Code Online (Sandbox Code Playgroud)
  • 我没有使用静态变量

  • 此外,我从 Recycler View 元素中删除了所有动画,但仍然很慢。

  • 我使用 Android 监视器和“Jump Java Heap”选项来查看它是如何管理内存的,并且主编号在 Byte[] 上(我不明白使用这个工具)

非常感谢!

更新 在我的日志中,我总是得到这个:

W/ViewRootImpl: Dropping event …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-recyclerview android-glide

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

Glide 无法加载图片

我有 ImageView 的简单布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.vbusovikov.glidetest.MainActivity">

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

和简单的 Glide 表达式加载图像到这个 ImageView 只是为了测试 Glide

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ImageView imageView = (ImageView)findViewById(R.id.image);

        Glide.with(this)
                .load("http://you-ps.ru/uploads/posts/2013-08/1376601606_1273.png")
                .error(R.mipmap.ic_launcher)
                .into(imageView);

    }
Run Code Online (Sandbox Code Playgroud)

但是,会显示错误图标。它可能是什么问题?我的网络上有代理服务器,并且有适合这种情况的 gradle.properties。

systemProp.http.proxyHost=proxy******.ru
systemProp.http.proxyPort=****
Run Code Online (Sandbox Code Playgroud)

但即使我尝试在任何代理之外启动这个小应用程序,它也不会出于某种原因工作。

我的 build.gradle 文件

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.example.vbusovikov.glidetest"
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled …
Run Code Online (Sandbox Code Playgroud)

android android-glide

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

如何删除滑行缓存 - android?

所以我在我的应用程序中到处使用 glide 来通过 url 上传用户的个人资料图片。当用户更改他们的个人资料图片时。我更新了后端,所以更新了 url。但是,glide 已经缓存了旧图像。我如何覆盖之前缓存的图像,以便当用户浏览应用程序时,他/她可以在所有活动中看到他们的个人资料图片的变化?

android android-glide

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

使用 Glide Image Load setDataSource 的运行时异常失败:状态 =

我正在使用 Glide 从我的手机内存中加载图像。我的图像视图定义为:

   ImageView ivx=(ImageView)view.findViewById(R.id.ivx);
Run Code Online (Sandbox Code Playgroud)

使用 Glide 将手机中的图像加载到图像视图中的代码是:

  Glide.with(getActivity()).load(new File("/storage/emulated/0/somefolder/MEDIA/PROFILEIMAGES/PROFILE_image1.jpg").toString())
            .listener(new RequestListener<String, GlideDrawable>() {
                @Override
                public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
                    Log.e("xmx1","Error "+e.toString());
                    return false;
                }

                @Override
                public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
                    Log.e("xmx1","no Error ");
                    return false;
                }
            })
            .into(ivx);
Run Code Online (Sandbox Code Playgroud)

我一直面临的问题是这段代码抛出了一个异常:

  Error java.lang.RuntimeException: setDataSource failed: status = 0x80000000
Run Code Online (Sandbox Code Playgroud)

我检查了文件,文件在文件夹中!但是 Glide 并没有将图像文件加载到图像视图中!

有人可以告诉我我做错了什么!

提前致谢

java android runtimeexception android-glide

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

最新版本的Glide给出依赖性错误

我已将Glide的版本从4.0.0-RC0升级到4.4.0.但它给我一个错误的说法

Error:Module 'com.github.bumptech.glide:glide:4.4.0' depends on one or more Android Libraries but is a jar
Run Code Online (Sandbox Code Playgroud)

它不是说哪个罐子或任何其他信息.有人知道如何解决这个问题吗?我还在build.gradle中附加了Glide的条目

compile 'com.github.bumptech.glide:glide:4.4.0'
compile 'com.github.bumptech.glide:okhttp3-integration:4.4.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.4.0'
compile 'com.github.bumptech.glide:annotations:4.4.0'
Run Code Online (Sandbox Code Playgroud)

编辑:我正在使用支持库版本27.0.1

android gradle android-glide

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

错误:(35, 24) 错误:在最新的 Glide 中找不到符号方法 crossFade()

我有一个使用 Glide 3.5.2 的旧项目。下面的工作正常。

    Glide.with(context)
            .load(url)
            .override(IMAGE_SIZE_FIX, IMAGE_SIZE_FIX)
            .crossFade()
            .placeholder(placeholder)
            .into(imageView);
Run Code Online (Sandbox Code Playgroud)

但是,现在我将 Glide 更新到 4.5.0。它抱怨

Error:(35, 24) error: cannot find symbol method override(int,int)
Run Code Online (Sandbox Code Playgroud)

我尝试从Glide-4.0.0 Missing placeholder, error, GlideApp解决overide(int,int)问题的答案 。但随后就crossfade()成了问题。

我尝试的方法如下...

    Glide.with(context)
            .load(url)
            .apply(new RequestOptions().override(IMAGE_SIZE_FIX, IMAGE_SIZE_FIX).placeholder(placeholder))
            .crossFade()
            .into(imageView);

    Glide.with(context)
            .load(url)
            .apply(new RequestOptions().override(IMAGE_SIZE_FIX, IMAGE_SIZE_FIX).placeholder(placeholder).crossFade())
            .into(imageView);
Run Code Online (Sandbox Code Playgroud)

两者都不起作用。抱怨

Error:(51, 17) error: cannot find symbol method crossFade()
Run Code Online (Sandbox Code Playgroud)

我怎么申请.crossFade()

android android-glide

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

如何使用 Glide for android 压缩和降低图像质量

我正在使用 Glide 库上传图片。在我的另一个应用程序中,我使用此代码

void imageButtonclick() {
        iv1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                CropImage.activity(filePath).setGuidelines(CropImageView.Guidelines.ON)
                    .setAspectRatio(1,1).setOutputCompressQuality(50).start(UploadBook.this);

                // Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                    //intent.putExtra(MediaStore.EXTRA_OUTPUT,imageuri);
                    //startActivityForResult(intent, CAMERA_REQUEST_CODE);
            }
        });
Run Code Online (Sandbox Code Playgroud)

通过声明来减小图像的大小.setOutputCompressQuality(50)但我不知道如何对 Glide Image library 做同样的事情。

我的代码是

public static void loadLocalImage(Context ctx, RequestOptions glideRequests, Uri uri, ImageView imageView,
                                      RequestListener listener) {

        glideRequests.fitCenter()
                .skipMemoryCache(true)
                .diskCacheStrategy(DiskCacheStrategy.NONE);
        Glide.with(ctx)
                .applyDefaultRequestOptions(glideRequests.placeholder(R.drawable.ic_stub).error(R.drawable.ic_stub))
                .asBitmap()
                .load(uri)
                .listener(listener)
                .into(imageView);

    }
Run Code Online (Sandbox Code Playgroud)

java android android-glide

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

在滑行中播放 GIF 图像一次

我试图找到如何在图像按钮中设置 GIF 图像并将其设置为仅播放一次。

SetContentView(Resource.Layout.activity_main);
        var ib_main_home = FindViewById<ImageButton>(Resource.Id.ds);
        Glide.With(this).AsGif()
 .Load(Resource.Mipmap.giphy)
 .Into(ib_main_home);
Run Code Online (Sandbox Code Playgroud)

c# android xamarin android-glide

3
推荐指数
2
解决办法
3348
查看次数