java - 如何用Glide显示不同的图像?

标签 java android android-glide

我想在延迟后显示另一张图像。这是我的代码:

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ImageView imageView=findViewById(R.id.imageView);

    ArrayList<String> test = new ArrayList<String>();
    test.add("e");
    test.add("a");
    if (test.get(0) == "e") {
        Glide.with(this)
                .load("https://something.something/something.jpg")
                .into(imageView);
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
    if (test.get(1) == "a") {
        Glide.with(this)
                .load("https://something.something/something2.jpg")
                .into(imageView);
    }
}
}

但是如果我这样做,只会出现第二张图像。有什么解决办法吗?

最佳答案

创建一个新方法

private void loadImage(String imageLink){
    Glide.with(this).load(imageLink).into(imageView);
}

现在只需在您想要在同一 imageView 中加载第一张图像和第二张图像的位置调用此方法即可

loadImage("imageLink");

final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
    @Override
    public void run() {
        //Do something after 3sec
        loadImage("next ImageLink");
    }
}, 3000);

类似这样,如果你想延迟加载不同ImageView中的图像,你也可以修改loadImage方法,让它也可以接受ImageView作为参数

if (test.get(0) == "e") {
    loadImage("https://something.something/something.jpg");
}
if (test.get(1) == "a") {
    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            //Do something after 3sec (3000 = 3 sec)
            loadImage("https://something.something/something2.jpg");
        }
    }, 3000);
}

希望这会有所帮助!

编辑 1:

如果你想延迟加载两张图片

if (test.get(0) == "e") {
    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            //Do something after 3sec (3000 = 3 sec)
            loadImage("https://something.something/something.jpg"); // image 1 
        }
    }, 3000);
}
if (test.get(1) == "a") {
    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            //Do something after 3sec (3000 = 3 sec)
            loadImage("https://something.something/something2.jpg"); // image 2
        }
    }, 3000);
}

关于java - 如何用Glide显示不同的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59642671/

相关文章:

java - 使用 Java 8 Stream 将 Array 转换为 HashMap

Android 自定义按钮 XML : Can't Use Two Different XML Drawable Files? [包括屏幕截图]

java - 为什么在使用 Azure Face API 时,在 Android 中进行 URL 调用时会出现 FileNotFoundException?

android - 如何在 Glide 中的缓存图像上应用动画

android - 缓存图像而不显示 Glide

android - Glide 4.4 java.lang.AbstractMethodError

java - Android on DragEvent 在屏幕上任意位置拖动时触发

java - jackson 映射关系

java - Jetty Websocket 空闲超时

java - fragment getActivity() 与接口(interface)回调?