Vous pouvez trouver cette fonctionnalité dans le lanceur Android. Depuis Android est open source, vous pouvez simplement copier et travailler avec.
Prenez ce code appelé DragableSpace: http://pastebin.com/CgK8TCQS. Dans votre activité que vous appelez:
setContentView(R.layout.main);
avec:
<?xml version="1.0" encoding="utf-8"?>
<de.android.projects.DragableSpace
xmlns:app="http://schemas.android.com/apk/res/de.android.projects"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/space"
android:layout_width="fill_parent" android:layout_height="fill_parent"
app:default_screen="1">
<include android:id="@+id/left" layout="@layout/left_screen" />
<include android:id="@+id/center" layout="@layout/initial_screen" />
<include android:id="@+id/right" layout="@layout/right_screen" />
</de.android.projects.DragableSpace>
Comme vous pouvez le voir, vous pouvez définir un écran d'accueil pour votre application en utilisant seulement xml;)
Définir chaque vue (initiale, droit et à gauche) comme ceci:
<LinearLayout android:id="@+id/center"
android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:background="@color/orange">
<Button android:text="Initial Screen" android:id="@+id/Button2"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:padding="10dp" android:layout_margin="10dp">
</Button>
</LinearLayout>
Pour plus d'informations consultez t sa question: Developing an Android Homescreen
J'ai fini par aller avec une solution similaire. Je viens d'écrire mes propres objets autour d'un FrameLayout et de contrôler la superposition plus précisément. Les choses semblent bien fonctionner maintenant. – Aaron