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