使用 Glide 加载到 Imageview 但延迟

Use Glide load into Imageview but delay(使用 Glide 加载到 Imageview 但延迟)

本文介绍了使用 Glide 加载到 Imageview 但延迟的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用 Glide 从 Firebase 加载我的 ImageView.

I use Glide to load my ImageView from Firebase.

当我运行我的应用程序时,我的 ImageView 会延迟(就像我视频中的牙齿一样),https://www.youtube.com/watch?v=6Mj0Xq3M8n0

When I am running my application, my ImageView will delay(like the tooth in my video), https://www.youtube.com/watch?v=6Mj0Xq3M8n0

所以我想知道为什么会这样,这是我的代码:

so I want to know why is this so,and this is my code:

private void setTooth() {
        for(int j=0;j<tooth.length;j++) {
            final int finalJ = j;
            toothRef.child(j+1+"").addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    if(dataSnapshot.exists()){
                        if(dataSnapshot.getValue().toString().trim().equals("b"))
                        {
                            imageRef.child("tooth_dirty").child(finalJ%16+1+"").addValueEventListener(new ValueEventListener() {
                                @Override
                                public void onDataChange(final DataSnapshot dataSnapshot) {
                                    Glide.with(Home_Activity.this)
                                            .load(Uri.parse(dataSnapshot.getValue().toString()))
                                            .diskCacheStrategy(DiskCacheStrategy.ALL)
                                            .into(tooth[finalJ]);
                                }

                                @Override
                                public void onCancelled(FirebaseError firebaseError) {

                                }
                            });
                        }
                        else
                        {
                            imageRef.child("tooth_clean").child(finalJ%16+1+"").addValueEventListener(new ValueEventListener() {
                                @Override
                                public void onDataChange(DataSnapshot dataSnapshot) {
                                    Glide.with(Home_Activity.this)
                                            .load(Uri.parse(dataSnapshot.getValue().toString()))
                                            .diskCacheStrategy(DiskCacheStrategy.ALL)
                                            .into(tooth[finalJ]);
                                }

                                @Override
                                public void onCancelled(FirebaseError firebaseError) {

                                }
                            });
                        }
                    }
                    else
                    {
                        for(int i=0;i<tooth.length;i++)
                            toothRef.child(i+1+"").setValue("g");
                        setTooth();
                    }
                }

                @Override
                public void onCancelled(FirebaseError firebaseError) {

                }
            });
        }
    }

我该如何解决我的问题?

How can I solve my problem?

推荐答案

尝试以下添加占位符

RequestOptions requestOptions = new RequestOptions();
requestOptions.placeholder(R.mipmap.ic_launcher);
requestOptions.error(R.drawable.error_img);

Glide.with(this)
            .setDefaultRequestOptions(requestOptions)
            .load("")
            .into(imageViewPlaceholder);

或使用 apply 代替 setDefaultRequestOptions

or use apply instead of setDefaultRequestOptions

Glide.with(MainActivity.this)
        .load(url)
        .apply(requestOptions)
        .into(imageview);

这篇关于使用 Glide 加载到 Imageview 但延迟的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:使用 Glide 加载到 Imageview 但延迟