Proviamo a istanziare un oggetto di tipo WindowManager. Ho reso WindowManager wm come variabile di istanza.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Immagine immagine=new Immagine(this);
wm=(WindowManager)this.getSystemService(Context.WINDOW_SERVICE);
wm.addView(immagine);
Ottengo un errore perché il metodo addView prevede necessariamente due parametri di cui uno i parametri.Devo quindi studiare WindowManager.LayoutParams.
Vediamoli!
Soprattutto, quanti parametri hanno questi LayoutParams?
Qui ne figurano cinque.
- larghezza
- altezza
- tipo
- flags
- format
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);
Ci provo.Ci si aggiunge anche la proprietà Gravity.
params=new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
0,
PixelFormat.TRANSLUCENT);
params.gravity= Gravity.RIGHT | Gravity.TOP;
(scritti da me).E ora ci provo...
Niente da fare!
Mi rendo conto che si tratta di un Service, non di un'Activity.
Costruisco un Service.
Il codice è posto nel metodo onCreate.
E funziona!!!

Nessun commento:
Posta un commento