Android: balayez l'écran pour ouvrir une autre activité?
je suis un n00b programmeur et ont besoin de beaucoup d'aide.
Juste pour le tutoriel, je veux faire simple flore & de la faune (plante & animal) de l'encyclopédie
Je veux faire de mon écran d'accueil glisser-mesure tout comme l'Android l'écran d'accueil de. Balayez vers la droite pour ouvrir la page de Plantes et balayez vers la gauche pour ouvrir des Animaux de la page.
Je ne sais pas comment faire le effet de transition. Nous pouvons donc faites-le glisser à mi-chemin à coup d'oeil ce qui est dans la page suivante et il suffit de glisser en arrière pour annuler
Pouvez-vous les gars de partager un lien pour la faire glisser en mesure de l'écran?
Grâce avant
[Modifier]
@Agarwal
J'ai essayé le code à partir de votre Link2 et il ne fonctionne pas
J'essaie de tester si le geste est détecté ou non par la mise Toast à l'intérieur de l'intérieur de la classe, mais le pain n'est pas montré. Le Link1 est fondamentalement la même.
et de la porte de la code, je pense que ça ne peut pas faire de mon écran glisser pouvoir comme dans Android l'écran d'accueil de
mon code:
public class Home extends Activity implements OnClickListener {
private GestureDetector gestureDetector;
View.OnTouchListener gestureListener;
ImageButton flora, fauna;
Intent go;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initialize();
gestureDetector = new GestureDetector(new SwipeGestureDetector());
gestureListener = new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
};
}
private void initialize() {
//find view by id to image button
//set onClickListener to image button
}
public void onClick(View v) {
//normal switch and case for each button
}
private void onLeftSwipe() {
Toast t = Toast.makeText(Home.this, "Left swipe", Toast.LENGTH_LONG);
t.show();
go = new Intent("test.apps.FLORA");
startActivity(go);
}
private void onRightSwipe() {
Toast t = Toast.makeText(Home.this, "Right swipe", Toast.LENGTH_LONG);
t.show();
go = new Intent("test.apps.FAUNA");
startActivity(go);
}
private class SwipeGestureDetector extends SimpleOnGestureListener {
private static final int SWIPE_MIN_DISTANCE = 50;
private static final int SWIPE_MAX_OFF_PATH = 200;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
try {
Toast t = Toast.makeText(Home.this, "Gesture detected", Toast.LENGTH_SHORT);
t.show();
float diffAbs = Math.abs(e1.getY() - e2.getY());
float diff = e1.getX() - e2.getX();
if (diffAbs > SWIPE_MAX_OFF_PATH)
return false;
//Left swipe
if (diff > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
Home.this.onLeftSwipe();
}
//Right swipe
else if (-diff > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
Home.this.onRightSwipe();
}
} catch (Exception e) {
Log.e("Home", "Error on gestures");
}
return false;
}
}
}
- Hey, question rapide. Avez-vous jamais comprendre pourquoi la link2 n'a pas de travail? Je suis en train de le faire fonctionner ainsi. Mais j'ai pas de chance dès maintenant.
- Oui, j'ai trouvé une bonne source de code de ce dragable écran, voici le lien marcreichelt.blogspot.sg/2010/09/...
- le lien est cassé, voici un lien alternatif web.archive.org/web/2....
GestureDetector
est maintenant obsolète
Vous devez vous connecter pour publier un commentaire.
Je sais que c'est une vieille question, mais pour quelqu'un d'autre vous vous demandez pourquoi le code ci-dessus ne fonctionne pas c'est parce qu'il n'a pas défini l'OnTouchListener à un objet de Vue. C'est pourquoi son balayage "événement" n'est pas d'être pris, parce que rien n'est à l'écoute.
Il pourrait ajouter cette ligne pour définir le passage des doigts sur son bouton image (bien que vous auriez probablement souhaitez une meilleure Vue de l'objet, puis ce):
Vous devez utiliser ViewPager , veuillez consulter les liens ci-dessous.
http://android-developers.blogspot.in/2011/08/horizontal-view-swiping-with-viewpager.html
http://developer.android.com/training/implementing-navigation/lateral.html#horizontal-paging
Android Activité De Balayage De Détection
Créer Une Base De L'Activité De La Classe
Puis de renouveler votre Activité de _SwipeActivityClass
mettre en œuvre des méthodes onSwipeLeft() et onSwipeRight() pour démarrer une autre activité
L'Intention de Fonction ici pour aller à la prochaine activité sur le geste auditeur
Il sera b