¿Cómo mover una vista en Android?

Tengo un proyecto donde tengo 2 retos:

Primero:

Mueva un icono a donde el dedo toque la pantalla:

Para esto, el mejor enfoque que he encontrado, es usar.layout() Método en la vista.

Segundo:

Tengo dos diseños, en unaDisposición relativa, ambos con ancho y alto de pantalla (1 está escondido detrás del otro). Quiero mover el de arriba unas cuantas vueltas a la derecha cada vez que hago clic en un botón.

¿Hay una mejor manera de mover vistas en Android?

¿Cuáles podrían ser las desventajas de usar el método?.layout() ?

public void layout (int l, int t, int r, int b) 
Since: API Level 1 
Assign a size and position to a view and all of its descendants 

Parameters:
l  Left position, relative to parent 
t  Top position, relative to parent 
r  Right position, relative to parent 
b  Bottom position, relative to parent  

Gracias por adelantado.

Respuestas a la pregunta(4)

Su respuesta a la pregunta