Ищете просто команду быстрого и легкого ожидания - PullRequest
2 голосов
/ 25 августа 2011

Сразу после команды быстрого ожидания, которая остановит мое приложение, скажем, на 10 миллисекунд, чтобы оно выглядело так, как будто оно оживляет (в моем случае это шар).

    public class PiranhaDrop extends Activity
    {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    FrameLayout main = (FrameLayout) findViewById(R.id.main_view);
    main.addView(new Drawing(this,0,0,0));
    int MyLoop=0;
    while(MyLoop<100)
    {
        main.addView(new Drawing(this,MyLoop,10,10));
        synchronized(this){wait(10);}
        //try{Thread.sleep(WaitTime);} catch (InterruptedException e){}
        MyLoop=MyLoop+1;
        main.setOnTouchListener(new View.OnTouchListener()
        {
            public boolean onTouch(View v, MotionEvent e)
            {
                float x = e.getX();
                float y = e.getY();
                FrameLayout flView = (FrameLayout) v;
                flView.addView(new Drawing(getParent(),x,y,25));
                return false;
            }
        });
    }
}

}

Как видите, сразу после начала цикла я попробовал несколько вещей (WaitTime относится к лонгу, от которого я избавился, он не работал) - ни один из которых не сработал.

Спасибо.

Ответы [ 2 ]

4 голосов
/ 25 августа 2011

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

1 голос
/ 25 августа 2011

Правильный способ ожидания таков:

try
{
    Thread.sleep(10);
}
catch (Exception e){}

Однако обратите внимание, что это будет выполняться в потоке пользовательского интерфейса.Для 10 мс нет реальной проблемы, и это предпочтительный способ подождать ... Но в течение более длительных периодов это приведет к тому, что ваши пользователи увидят ужасный диалог, в котором ваше приложение не отвечает.

...