Поместите изображение в случайном порядке x, y экрана и сделайте изображение невидимым после определенного пероида в Android - PullRequest
1 голос
/ 24 сентября 2011

Мне нужно создать изображение в случайных местах. Через несколько секунд он должен исчезнуть. После того, как первое изображение исчезло, должно появиться второе изображение. Я использовал следующий код, чтобы поместить изображение в произвольные координаты и использовать обработчик, чтобы сделать его невидимым через несколько секунд. Я использовал для цикла, чтобы создать некоторое количество изображений. Все изображения приходят и уходят одновременно. Я думаю, что цикл for является проблемой. Я не мог найти решение для этого. Любая помощь приветствуется.

     ImageView iv=null;
     RelativeLayout rl=null;
     Random rand= new Random();
     int min=10, max=100;
     int randomNum;

 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 rl = (RelativeLayout) findViewById(R.id.my_relative_layout);

for(int i=0;i<100;i++){

    randomNum = rand.nextInt(max - min + 1) + min;
    Log.d("RandomNum",Integer.toString(randomNum));
    Log.d("i value",Integer.toString(i));
    iv = new ImageView(this);
    iv.setBackgroundColor(Color.YELLOW);

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(30, 40);
    params.leftMargin = 50+randomNum;
    params.topMargin = 60+randomNum;
    rl.addView(iv, params);
    timerDelayRemoveView(500, iv);

}
    }


    public void timerDelayRemoveView(long time, final ImageView iv){
        Handler handler = new Handler(); 
        handler.postDelayed(new Runnable() {           
            public void run() {                
                iv.setVisibility(View.GONE);         
            }
            },  time); 
        }

1 Ответ

0 голосов
/ 24 сентября 2011

Вы можете попытаться реализовать timerDelayAddView (как вы задержали timerDelayRemoveView), где вы указываете задержку, зависящую от изображения (например, 2000 * i), перед тем как позвонить addView.

...