Ho creato uno service
che sovrascriverà un'immagine sopra l'intero schermo.Android Crea immagine "Ghost" (Touch-through)
Questa parte è il codice che sovrapporre l'immagine in cima al tutto lo schermo:
@Override public void onCreate() {
super.onCreate();
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
img = new ImageView(this);
img.setImageResource(R.drawable.image); // Image is .png format
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.CENTER | Gravity.CENTER;
params.x = 0;
params.y = 0;
windowManager.addView(img, params);
}
Tuttavia, qualsiasi spazio che l'immagine copre in intoccabile. Voglio che l'immagine da solo sovrapposto, senza influenzare altri componenti sullo schermo, simile a quello che fa questo:
Come posso rendere la zona sotto l'immagine tangibile (touch-through)?
Modifica
Sembra che lo spazio trasparente dell'immagine riempie un quadrato, e copre lo schermo (FYI). Quindi il mio obiettivo finale è di rendere l'immagine touch-through.
Ho provato la classe popupWindow
, consigliata da alcuni utenti SO, ma il suo scopo non soddisfa le mie esigenze e non funziona.
È possibile utilizzare un RelativeLayout sotto ImageView con colore di sfondo come # 99000000, parte importante "# 99" su colore Alpha o utilizzare colori trasparenti e aggiungere eventi onClick a RelativeLayout – Aspicas
Funziona se si aggiunge 'return false' in onTouchListener di una visualizzazione di immagini, quindi l'evento di tocco può essere passato al layout relativo? –
L'impostazione 'return false' on onTouchListener non ha funzionato. Sembra che l'immagine stia causando il problema: lo spazio vuoto. C'è un modo per rimuovere lo spazio vuoto? – jyoon