Topic recyclé voir plus bas !
Version imprimable
Topic recyclé voir plus bas !
Bonjour,
Pour avoir une Activity en fullscreen, il faut que dans le manifest tu lui affecte un theme parent de android:Theme.NoTitleBar.Fullscreen.
Tu peux mettre ça aussi :
Par contre je comprend pas ce que tu veux faire sinon.Code:android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
Tu peux pas faire un schéma ?
ok eh bien déjà merci pour cette réponse,
donc pour l'autre chose c'est très simple je voudrais faire comme le home par exemple,
c'est a dire que je peut switcher d'une page a un autre, seulement je ne vais pas avoir un grid a l’intérieur mais une image en fond et deux bonton qui seront les meme sur les 34 pages y'a seulement le fond et mon titre perso qui va changer.
Peut être HorizontalScrollView :
http://developer.android.com/referen...crollView.html
non en faite se que je voudrais faire c'est changer de page d'un coup et non pas de cette façon a l'exemple un viewFlipper je ne sais pas si c'est seulement pour l'animation ou pour le changement de page enfin il faut que je change de page directement avec le doigt
Bonjour,
Oui c'est possible il suffit pour cela de cacher la TableWidget de ta TabActivityCitation:
et est il possible de cacher les onglets en haut de sorte a voir la page en full screen
Après tu peux toujours créer une navigation sur ta TabActivity , pour cela il te suffira d'afficher deux layout un à gauche l'autre à droite et au click passer à la table suivante ou précédente .Code:
1
2 TabHost tabHost = getTabHost(); tabHost.getTabWidget().setVisibility(View.GONE);
Pour ne pas avoir ces deux layout tout le temps affichés , tu peux essayer de les afficher quand il y a un tap sur la view par l'utilisateur.
bon et bien je te remercie pour ta réponse,
bien sur j'ai quand même un peu chercher entre temps,
et j'ai trouvé que les onglets intègre le même système que le viewFlipper,
bien sur il est possible de changer de vue simplement avec un glissé du doigt mais comme je ne sais pas si quelqu'un connait cette propriété ça serait super
bon alors voila j'ai enfin trouvé mon bonheur seulement j'ai une érreur incompréhenssible,
voici mon code java :
ainsi que mon xml :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 package com.m.h; import android.app.Activity; import android.os.Bundle; import android.view.ViewGroup; import android.view.animation.AnimationUtils; import android.widget.Button; import android.widget.ViewFlipper; public class mh extends Activity { static String[] items ={"Ajoupa Bouillon", "Anses d'Arlet", "Basse Pointe", " Bellefontaine", "Carbet", "Case Pilote", "Diamant", "Ducos", "Fond Saint Denis", "Fort De France", "François", "Grand Rivière", "Gros Morne", "Lamentin", "Lorrain", "Macouba", "Marigot", "Marin", "Morne Rouge", "Morne Vert", "Prêcheur", "Rivière Pilote", "Rivière Salée", "Robert", "Sainte Anne", "Sainte Luce", "Sainte Marie", "Saint Esprit", "Saint Joseph", "Saint Pierre"}; ViewFlipper flipper; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); flipper=(ViewFlipper)findViewById(R.id.details); flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in)); flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out)); for (String item : items) { Button btn =new Button(this); btn.setText(item); flipper.addView(btn, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT)); } flipper.setFlipInterval(2000); flipper.startFlipping(); } }
et donc maintenant mon souci le R.anim dans mon code java me retourne une erreur et je ne vois pas trop quoi faire il semblerais que cela vienne du R.java seulement je ne sais pasCode:
1
2
3
4
5
6
7
8
9
10
11
12 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ViewFlipper android:id="@+id/details" android:layout_width="fill_parent" android:layout_height="fill_parent" > </ViewFlipper> </LinearLayout>
Bonjour,
Quand tu as une erreur sur les ressources , n'hésite pas à faire un clean sur ton projet. Si le clean ne résout pas ton erreur , alors c'est que tu as une déclaration de ressource manquante ou erronée.
après ton conseil je viens tout juste de faire un clean et rien y fait toujours cette même erreur et j'utilise le code complet d'un livre sur android que j'ai trouvé sur google livre,
donc je trouve ça bizarre et étant débutant je ne sais pas trop ou chercher l'erreur car la tout me semble bien :s
Bonjour,
Normalement si tu es sous eclipse , tu as un panel qui s'appelle Problems , si tu as une erreur sur les ressources alors tu auras au moins une précision dans ces panels sur l'erreur générée.
Dis nous si tu n'arrives toujours pas à la trouver ce que tu as donc dans ce panel "Problems".
érreur très difficile a cerner la preuve :
voici les ligne en question :Code:
1
2
3
4 Description Resource Path Location Type anim cannot be resolved or is not a field mh.java /mh/src/com/m/h line 26 Java Problem Description Resource Path Location Type anim cannot be resolved or is not a field mh.java /mh/src/com/m/h line 27 Java Problem
Code:
1
2 flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in)); flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out));
Je crois que j'ai déjà eu ce genre de problème avec R.java, déjà il faut être sûre qu'il ni a aucune erreur de compilation (sinon le R.java n'est pas généré) .
Moi je supprime carrément le dossier gen et je le recréer dans le build path.
Je ne sais pas pourquoi j'étais obligé de faire ça.
Si ça se trouve t'es juste pas en Build Automaticlly.
donc dans éclipse j'ai supprimé le dossier gen de mon projet il s'est tout de suite recréer avec toujours la même erreur :s
Ouais ben ça marche pas mal alors !
T'aurais pu te retrouver bloqué.
Bon ben on sait que le problème ne vient pas de là.
Dans le fichier R tu n'as pas :
Code:
1
2
3 public static final class anim { public static final int ... }
Bonjour,
Est ce que surtout tu as créer les deux fichier anim "push_left_in.xml" et "push_left_out" ?
eux non sur l'exemple que j'ai utilisé il est indique nul part qu'il faut le créer si je le créer je met quoi dedans ?
Il faut les créer ;).
push_left_in.xml:
push_left_out.xml:Code:
1
2
3
4 android:fromXDelta="100%p" android:toXDelta="0" android:fromAlpha="0.0" android:toAlpha="1.0"
Code:
1
2
3
4 android:fromXDelta="0" android:toXDelta="-100%p" android:fromAlpha="1.0" android:toAlpha="0.0"
je les ai créer a l'instant avec l'aide de :
http://developer.android.com/resourc..._left_out.html
et
http://developer.android.com/resourc...h_left_in.html,
ensuite j'ai fait un clean projet et toujour le même souci :s
Ils sont dans /res/anim/ ?
Code:
1
2
3
4
5
6
7
8
9 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="100%p" android:toXDelta="0" /> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" /> </set>
ah ben non il n'y sont pas dedans lol enfin je vais essayer et je vous tiens au courant
Ça y est, ça marche enfin merci merci quelqu’un sait quel propriété faut il utiliser pour tourner les pages avec le doigt plutôt que automatiquement ?
Tu as une réponse de Viish sur ce sujet ;).
http://www.developpez.net/forums/d10...uvement-doigt/
merci pour ton aide
bon et bien je n'arrive pas du tout a comprendre comment utiliser ça les gesturedetector si quelqu'un pouvais m'aider a adapter sa a mon code ça serait super
Bonjour,
Montre nous ce que tu as déjà fait ?
Merci.
en faite j'ai ouvert un nouveau sujet sur ça mais a parement personne n'y fait attention et vue que toi tu me demande se que j'ai déjà fait je te le dit de suite :)
donc j'ai mis en place les gesture avec un onFling et j'ai aussi essayé le LongPress pour voir si c’était pas ça qui foirer mais en faite même pas les toast s'affiche quand je glisse mon doigt ou que je reste appuyé
voici mon code :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135 package com.m.h; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.GestureDetector; import android.view.GestureDetector.SimpleOnGestureListener; import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.Button; import android.widget.LinearLayout; import android.widget.Toast; import android.widget.ViewFlipper; public class mh extends Activity { static String[] items ={"Ajoupa Bouillon", "Anses d'Arlet", "Basse Pointe", " Bellefontaine", "Carbet", "Case Pilote", "Diamant", "Ducos", "Fond Saint Denis", "Fort De France", "François", "Grand Rivière", "Gros Morne", "Lamentin", "Lorrain", "Macouba", "Marigot", "Marin", "Morne Rouge", "Morne Vert", "Prêcheur", "Rivière Pilote", "Rivière Salée", "Robert", "Sainte Anne", "Sainte Luce", "Sainte Marie", "Saint Esprit", "Saint Joseph", "Saint Pierre"}; private static final int SWIPE_MIN_DISTANCE = 120; private static final int SWIPE_MAX_OFF_PATH = 250; private static final int SWIPE_THRESHOLD_VELOCITY = 200; private GestureDetector gestureDetector; View.OnTouchListener gestureListener; private int currentIndex = 0; private int maxIndex = 30; ViewFlipper flipper; Animation slideLeftIn; Animation slideLeftOut; Animation slideRightIn; Animation slideRightOut; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); flipper=(ViewFlipper)findViewById(R.id.details); slideLeftIn = AnimationUtils.loadAnimation(this, R.anim.slide_left_in); slideLeftOut = AnimationUtils.loadAnimation(this, R.anim.slide_left_out); slideRightIn = AnimationUtils.loadAnimation(this, R.anim.slide_right_in); slideRightOut = AnimationUtils.loadAnimation(this, R.anim.slide_right_out); flipper.setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_in)); flipper.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out)); if (items != null) { Button btn =new Button(this); Button btn2 = new Button(this); btn.setText("categorie"); btn2.setText(items[currentIndex]); LinearLayout mylayout = new LinearLayout(this); mylayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); mylayout.addView(btn); mylayout.addView(btn2); flipper.addView(mylayout, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); } gestureDetector = new GestureDetector(new MyGestureDetector()); } public boolean onTouch(View v, MotionEvent event) { if (gestureDetector.onTouchEvent(event)) { return gestureDetector.onTouchEvent(event); } return false; } class MyGestureDetector extends SimpleOnGestureListener { @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) return false; // right to left swipe if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { flipper.setInAnimation(slideLeftIn); flipper.setOutAnimation(slideLeftOut); if (currentIndex == maxIndex) { currentIndex = 0; } else { currentIndex = currentIndex + 1; } Toast.makeText(mh.this, "Left Swipe", Toast.LENGTH_SHORT).show(); flipper.showNext(); } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { flipper.setInAnimation(slideRightIn); flipper.setOutAnimation(slideRightOut); if (currentIndex == maxIndex) { currentIndex = 0; } else { currentIndex = currentIndex - 1; } Toast.makeText(mh.this, "Right Swipe", Toast.LENGTH_SHORT).show(); flipper.showPrevious(); } return false; } @Override public void onLongPress(MotionEvent e) { Toast mToast = Toast.makeText(getApplicationContext(), "Long Press", Toast.LENGTH_SHORT); mToast.show(); } } }
Bonjour,
Passes plutôt comme cela , si tu veux intercepter sur toutes ta vue
Tu n'auras plus qu'a surcharger les fonctions onFling , ..Code:public class mh extends Activity implements OnGestureListener
PS:
.... Tu sais je viens de rentrer de week end , et je remonte les post un par un , donc avant que j'arrive à ton nouveau sujet j'ai trouvé l'ancien .Citation:
en faite j'ai ouvert un nouveau sujet sur ça mais apparemment personne n'y fait attention
Avant de penser que personne ne te réponds laisse un peu de temps à ces personnes ...
Maintenant je t'invites à relire les règles du forum
http://club.developpez.com/regles/
désolé et je m'en excuse encore merci pour ta réponse je vais tenter de faire ce dont tu m'a dit et je te tiens au jus
que veut tu dire par surcharger onFling tu peut me mettre un exemple ?
je sais que c'est primordiale de connaitre ça mais quand on débute il faut l'apprendre au moins une fois
Bonjour,
Quand tu positionne un @Override au dessus de tes fonctions , tu stipules au compilateur que tu redéfinies la fonction .Citation:
que veut tu dire par surcharger onFling tu peut me mettre un exemple ?
D'ailleurs je n'aurais pas du dire surcharger me redéfinir, cela veut dire que tu récupères une fonction de ta classe Mère que tu redéfinies dans ta classe fille .
Un exemple : Où la Class B redéfinie la fonction Toto .
Donc il te suffira juste de redéfinir ta fonction onFling dans ta nouvelle class mh.Code:
1
2
3
4
5
6
7 Class A { protected int Toto (); } Class B extends A { protected int Toto (); }
ah je comprend mieux a quoi servent les @Override il existe pas une doc avec les différents type ?
SiCitation:
ah je comprend mieux a quoi servent les @Override il existe pas une doc avec les différents type ?
Tu as une doc sur les différentes annotations sous android
http://developer.android.com/referen...nnotation.html
Après tu peux toujours relire les cours sous java , pour en apprendre un peu plus sur les mots clés à connaître
http://java.developpez.com/faq/java/...angage_notions
bon et bien tout marche bien merci a toi d'avoir été patient saurait tu comment je pourrait faire en sorte que btn2 porte le nom de items[currentIndex] a chaque changement sachant que currentIndex s’incrémente ou se décrémente a chaque slide mais le bouton lui ne veut pas changer et reste sur items[0] qui est ajoupa bouillon dans la var items[]
?
Tu remets bien à jour ton bouton btn2 juste après l'animation ?
Du style :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) return false; // right to left swipe if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { flipper.setInAnimation(slideLeftIn); flipper.setOutAnimation(slideLeftOut); if (currentIndex == maxIndex) { currentIndex = 0; } else { currentIndex = currentIndex + 1; } Toast.makeText(mh.this, "Left Swipe", Toast.LENGTH_SHORT).show(); flipper.showNext(); btn2.setText(items[currentIndex]); } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { flipper.setInAnimation(slideRightIn); flipper.setOutAnimation(slideRightOut); if (currentIndex == maxIndex) { currentIndex = 0; } else { currentIndex = currentIndex - 1; } Toast.makeText(mh.this, "Right Swipe", Toast.LENGTH_SHORT).show(); flipper.showPrevious(); } return false; }
bon ben il me reste plus qu’a a mettre le sujet en résolu en tout cas merci je te trouve très présent sur le forum merci bien a toi