M0286_Libro Curso
2: Avanzado en Android
Nuestro siguiente paso que debemos realizar es crear el hilo que va a controlar el dibujo de nuestra clase Panel . public class ViewThread extends Thread { private Panel mPanel;
private SurfaceHolder mHolder; private boolean mRun = false; public ViewThread(Panel panel) { mPanel = panel; mHolder = mPanel.getHolder(); } public void setRunning(boolean run) { mRun = run; } @Override public void run() { Canvas canvas = null; while (mRun) {
canvas = mHolder.lockCanvas(); if (canvas != null) { mPanel.doDraw(canvas);
mHolder.unlockCanvasAndPost(canvas);
}
}
}
}
Un hilo Es la parte de código encargada de realizar alguna acción a la misma vez que se está ejecutando otra.
Crear un hilo es muy fácil. Tenemos al constructor que tiene nuestra clase Panel como un parámetro. La variable mHolder se utiliza para evitar la repetición de las llamadas del método getHolder() (de esta manera mejoraremos el rendimiento). La variable lógica mRun nos posibilita poner fin a un bucle infinito que controla el dibujo. El método run() es muy importante. Tenemos un bucle while con el que bloqueamos el Canvas .
91
Made with FlippingBook - Online catalogs