Ok, allora ci siamo. Penso che il problema che incontri è (vediamo di spiegarci in italiano...) che vuoi generare un evento che su Android è generato dai sensori (di touchscreen e trackball) ed è normale che tu riesca a intercettarli ma non a generarli. Intendo dire che quello che faresti in questo modo è una sorta di "emulazione" del sensore sul touchscreen, mentre invece devi ricreare tu l'azione che accadrebbe per esempio passando il dito da destra a sinistra sullo schermo.
Tornando all'esempio che riporti: se vuoi fare scroll di una foto con l'accelerometro, la sequenza che vorresti ottenere è: il tuo sistema riconosce l'evento LEFT, che, a sua volta scatena (emulando) un evento X del touchscreen, al quale corrisponde il cambio di foto. Quel che ti consiglio io è di implementare direttamente il cambio di foto, scatenato dal tuo evento LEFT. Come ti suggerivo, attraverso i metodi della classe View si possono fare tutte ste cose.
Spero di essermi spiegato, ma ti riporto un esempio della mia applicazione, per farmi capire: la mia applicazione è una specie di telecomando tramite accelerometro. Per dare un feedback all'utente e fargli capire quello che sta facendo, nella schermata di guida ho una pallina che si muove a seconda di come si inclina il telefono.
Secondo la tua soluzione, da quel che capisco, avrei dovuto riconoscere il movimento del telefono, generare l'evento di movimento, generare un evento di touchscreen e muovere la pallina con l'evento di touchscreen, emulando il movimento del dito dell'utente sullo schermo.
In realtà quello che ho fatto è stato muovere la pallina con View.layout() in base al movimento rilevato dagli accelerometri.
E' una cosa un po' complicata da spiegare per iscritto ma spero di averti capito e di essermi spiegato.