Установить изображения по одному

Я новичок в разработке, поэтому хочу задать этот вопрос, извините, если это глупо

У меня есть 6 разных ImageView и 6 образов, как я могу установить образы в ImageView, чтобы они появлялись при щелчке один за другим с некоторой задержкой, например, в 1 секунду? Теперь они появляются все вместе одновременно

private int[] images;
private int[] containers;

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

    images = new int[] {R.drawable.wale,
                        R.drawable.btrfly,
                        R.drawable.cat,
                        R.drawable.dog,
                        R.drawable.fish,
                        R.drawable.dolphin};
    containers = new int[] {R.id.container1,
                            R.id.container2,
                            R.id.container3,
                            R.id.container4,
                            R.id.container5,
                            R.id.container6};

    for (int i = 0; i<containers.length; i++) {
        final ImageView temp = findViewById(containers[i]);
        temp.setImageResource(R.drawable.placeholder);

    }

    Button load = findViewById(R.id.btnLoad);
    load.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            for ( int i =0; i<containers.length; i++) {
                final ImageView temp = findViewById(containers[i]);
                temp.setImageResource(images[i]);
            }
        }
    });
}

Добро пожаловать в Stack Overflow (я заметил, что это ваш первый день здесь). Пожалуйста, покажите код, чтобы мы могли лучше понять вашу ситуацию (у меня уже есть некоторое общее представление, но я хочу убедиться, что я прав, а не гадал)

Bö macht Blau 29.05.2018 19:56

Кажется, отсутствует начало метода - это onCreate ()?

Bö macht Blau 29.05.2018 20:17

Да, это onCreate

Yury Pilath 29.05.2018 20:19

Я отредактировал недостающую часть в. Пожалуйста, исправьте это, если что-то не так

Bö macht Blau 29.05.2018 20:35

еще раз спасибо! Я отредактировал небольшую часть, и теперь все работает нормально! Спасибо!

Yury Pilath 29.05.2018 20:46
3
5
45
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать postDelayed() из android.os.Handler следующим образом:

final int baseDelay = 1000;
final Handler handler = new Handler();

load.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            for (int i = 0; i < containers.length; i++) {
                    final int ifinal = i;
                    handler.postDelayed(new Runnable(){
                    public void run(){
                    final ImageView temp = findViewById(containers[ifinal]);                       
                    temp.setImageResource(images[ifinal]);
                    }
                }, i * baseDelay);

            }
        }
    });

Большое спасибо за помощь! Я попробую!

Yury Pilath 29.05.2018 20:30

@YuryPilath - вот что произойдет, если я напишу код без IDE: спасибо за правку :)

Bö macht Blau 29.05.2018 20:52

Другие вопросы по теме