Mi piace sviluppare un'applicazione simile a Swapps. Sto cercando di visualizzare un pulsante in cima a qualsiasi schermata e ciò dovrebbe verificarsi solo con un'azione di scorrimento. Ho provato con il codice seguenteImpossibile ottenere l'evento di tocco per TYPE_SYSTEM_OVERLAY
WindowManager.LayoutParams params = new WindowManager.LayoutParams();
params.type =WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;
params.flags = WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
params.format =PixelFormat.TRANSLUCENT;
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
params.width = WindowManager.LayoutParams.WRAP_CONTENT;
parentlay = new LinearLayout(this);
mybt = new Button(getApplicationContext());
bt.setText("Click to Go");
parentlay.setBackgroundColor(Color.TRANSPARENT);
parentlay.setHapticFeedbackEnabled(true);
parentlay.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// event.getAction() prints 4 and not able to get up or down event
}
});
windowmanager.addView(parentlay, params);
sto cercando di visualizzare il pulsante quando l'utente fa scorrere da sinistra a destra catturando quell'evento e facendo
parentlay.addView(bt);
e togliere la vista quando l'utente fa scorrere da destra a sinistra per
Come accennato, non ho ricevuto gli eventi di movimento a meno che non avessi cambiato il tipo come TYPE_SYSTEM_ALERT, ma che l'animazione blocca tutto lo schermo e non è possibile fare clic sul pulsante Indietro o su Home, c'è un modo alternativo per farlo.
Ho appena provato sotto la modifica
params.type =WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
|WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
|WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
params.height = WindowManager.LayoutParams.MATCH_PARENT;
params.width = WindowManager.LayoutParams.MATCH_PARENT;
Ma non ho potuto fare clic sul pulsante sottostante, può essere la sua causa di MATCH_PARTENT ma se ho impostato a wrap_content allora non posso ottenere cliccare eventi.
Grazie per la tua risposta, ho bisogno di aggiungere la vista con l'azione di scorrimento o qualsiasi evento di azione, come quello che ha fatto swapps. Non ho avviare la mia app.e rimuovere la vista da un evento di azione – ganesh
ok per ora io può accettare la risposta di DjHacktor quindi è abbastanza vicino alle mie esigenze – ganesh
Grazie mille! – kord