Установить изображения по одному - PullRequest
0 голосов
/ 29 мая 2018

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

У меня есть 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]);
            }
        }
    });
}

1 Ответ

0 голосов
/ 29 мая 2018

Вы можете использовать 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);

            }
        }
    });
...