Как отображать другое изображение за другим с помощью Glide? - PullRequest
0 голосов
/ 08 января 2020

Я хочу отобразить другое изображение после задержки. Вот мой код:

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);
    }
}
}

Но только 2-е изображение появится, если я это сделаю. Любое решение?

1 Ответ

0 голосов
/ 08 января 2020

Создайте новый метод

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

Теперь просто вызовите это, где вы хотите загрузить первое изображение и второе изображение в одном и том же изображении.

loadImage("imageLink");

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

Примерно так, вы также можете измените метод loadImage, чтобы он также мог принимать ImageView в качестве параметра, если вы хотите загружать изображения в другой 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);
}
...