Ho capito che quella parte del codice non è altro che la creazione di una classe che estende View con il codice per il disegno su di essa.
La parte fondamentale del codice è questa:
@Override
public void onCreate() {
super.onCreate();
Toast.makeText(getBaseContext(),"onCreate", Toast.LENGTH_LONG).show();
mView = new HUDView(this);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
0,
// WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
// | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.RIGHT | Gravity.TOP;
params.setTitle("Load Average");
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
wm.addView(mView, params);
Prima viene istanziata la classe derivata dalla View:
mView = new HUDView(this);quindi viene aggiunta non al layout principale, ma a un oggetto di classe WindowManager, dopo una "preparazione" specifica.
Vediamo di analizzarla...
Vengono settati dei parametri di tipo WindowManager.LayoutParams.
Quindi viene istanziato un oggetto di classe WindowManager.
E' necessario andare a vedere le due classi WindowManager e WindowManager.LayoutParams.
Nessun commento:
Posta un commento