Ice Posted February 13, 2011 Share Posted February 13, 2011 (edited) Bonjours je suis nouveau sur ce forum que j'ai découvert depuis que je projette de m'acheter un téléphone sous android (soit environ deux semaines) et je dois dire que c'est vraiment le meilleur !! Je suis débutant dans la programmation sous android et je souhaiterais afficher une variable de type int à l'écran tout simplement. J'ai cherché mais en vain. Je sais que pour le texte on utilise textView, alors j'ai essayé de cast mon nombre en String mais ça n'a pas l'air de marcher. Donc si vous pouviez me donner ce coups de pouce ce serait sympa, bonne fin de journée à tous Edit : C'est bon j'ai résolu mon problème avec String.valueOf(i) même si dans un premier temps cela n'avais pas marché, j'avais du mal m'y prendre. Par contre j'aurais une autre question : je ne comprend pas comment afficher une liste de nombre, par exemple dans une boucle for, en effet cela m'affiche toujours le dernier. Par exemple avec : TextView textView = new TextView(this); TextView autretxt = new TextView(this); textView.setText("Hello world !\n"); setContentView(textView); for(int i = 1; i <= 10; i++) { autretxt.setText( "\n" + String.valueOf(i)); setContentView(autretxt); } Comment je peux faire pour afficher à l'écran : Hello world ! 1 2 ... 10 Edited February 13, 2011 by Ice Quote Link to comment Share on other sites More sharing options...
Kricek Posted February 15, 2011 Share Posted February 15, 2011 (edited) Salut! Le problème vient du fait que tu REMPLACES le contenu de ta TextView à chaque fois... Mais ca va tellement vite que tu ne vois que le résultat final, c'est a dire la derniere valeur. Tu as plusieurs solutions: - La première: mettre toutes les lignes dans la même TextView, - La seconde : ajouter une TextView pour chaque ligne. Pour la première : Tu vas créer une StringBuffer, par exemple. du coup, ton code donnera à peu près ca: TextView textView = new TextView(this); StringBuffer contenu = new StringBuffer(); contenu.append("Hello world !\n"); for(int i = 1; i <= 10; i++) { contenu.append("\n" + String.valueOf(i)); } textView.setText(contenu); setContentView(textView); Pour la seconde: Tu vas créer un LinearLayout (ou récupérer un existant) et tu lui rajoutera, à chaque fois, une nouvelle TextView. N'oublie pas d'ajouter la propriété orientation verticale pour ton LinearLayout. Cela permettra de mettre tes TextViews les unes apres les autres verticalement et non horizontalement (par défaut). Ca donnera à peu près ca: LinearLayout conteneur = new LinearLayout (this); conteneur.setOrientation(LinearLayout.VERTICAL); TextView textView = new TextView(this); textView.setText("Hello world !"); conteneur.addView(textView); for(int i = 1; i <= 10; i++) { TextView ligne = new TextView(this); textView.setText(String.valueOf(i)); conteneur.addView(ligne); } setContentView(conteneur); Essaye et tu me diras... Edit : Pour ton problème précédent, il y avait plus simple que "String.valueOf(i)" => ""+i ca revient à caster un int en String... ;) Edited February 15, 2011 by Kricek Quote Link to comment Share on other sites More sharing options...
Ice Posted February 16, 2011 Author Share Posted February 16, 2011 (edited) Salut, merci pour ton aide :) J'aurais deux autres questions, en fait je suis en train (j'essaye plutôt) de développer une application qui utilise le micro du téléphone donc : - C'est bien cette librairie qu'il faut utiliser : http://developer.android.com/reference/android/media/MediaRecorder.html ? - J'en suis quasiment sûr mais le microphone ne fonctionne pas sur l'émulateur ? Donc il faut que je développe et teste mon appli sur un vrai téléphone ? Edited February 16, 2011 by Ice Quote Link to comment Share on other sites More sharing options...
eephyne Posted February 17, 2011 Share Posted February 17, 2011 De toute manière attend toi à devoir investir dans un téléphone android si tu veux développer des application , l'émulateur c'est bien mais c'est pas vraiment parfait non plus , ça sert plus a tester ton appli sur des version d'android que tu ne possède pas. Pour répondre à ta question , oui je crois que l'émulateur ne peut pas avoir d'entrée audio (mais je peut me tromper) Quote Link to comment Share on other sites More sharing options...
Ice Posted February 17, 2011 Author Share Posted February 17, 2011 De toute manière attend toi à devoir investir dans un téléphone android si tu veux développer des application , l'émulateur c'est bien mais c'est pas vraiment parfait non plus Oui c'est pour ça que je pense me prendre et puis aussi pour le fait d'avoir un jolie smartphone. J'ai légèrement avancé sur mon applie car j'arrive maintenant à capturer du son mais ça n'a pas été simple. Mais bon ça rame à mort on dirait que je parle au ralenti. J'ai aussi un problème avec getMaxAmplitude() qui me renvoie toujours 0. Si des gens arrivent à le faire marcher ça m'aiderais bien d'avoir un coup de main. J'ai aussi une question qui a déjà du être posée mais ça fait une demie heure que je cherche sur google sans trouver : comment lancer une applie développée sous Éclipse sur son téléphone en lieu et place de l'émulateur ? Bonne fin de soirée ;) Quote Link to comment Share on other sites More sharing options...
eephyne Posted February 18, 2011 Share Posted February 18, 2011 rien de plus simple , tu branche ton téléphone en usb (en ayant activé le mode debug sur le téléphone) , il sera detecté par adb (et donc par eclipse et son plugin adt) , et sera dès lors utilisé a la place de ton émulateur lorsque tu lancera ton application comme tu le faisais avant Quote Link to comment Share on other sites More sharing options...
Ice Posted February 22, 2011 Author Share Posted February 22, 2011 (edited) Ah ah j'ai réussi à récupérer l'amplitude du son, par contre ça m'affiche tout de même beaucoup de 0, jugez par vous même : Alors je pense que ça vient de la lenteur de l'émulateur, donc dans l'attente d'un téléphone quelqu'un serait t'il assez gentil de la tester sur son téléphone, je peux vous envoyer le code par mp :emo_im_angel: En passant j'aurais une autre question : étant donné que j'affiche beaucoup de nombres existe t'il un moyen de scroller pour visionner l'intégralité du texte affiché ? Merci et bonne soirée :D Edited February 22, 2011 by Ice Quote Link to comment Share on other sites More sharing options...
eephyne Posted February 23, 2011 Share Posted February 23, 2011 une scrollview devrait faire l'affaire Quote Link to comment Share on other sites More sharing options...
Ice Posted March 18, 2011 Author Share Posted March 18, 2011 Bonjours, je reviens avec une question à laquelle je ne trouve pas de réponse. En fait je suis en train de développer un spectrographe en temps réel pour afficher le spectre fréquentiel du son enregistré par le micro. Avant de commencer à développer toute une interface graphique je voudrais m'assurer du bon fonctionnement de la transformée de Fourié pour se faire j'aurais donc aimé par exemple dessiner les barres d'amplitudes comme sur cette images avec des points tout simplement. Faire du genre : ... ..... .. ......... .. ....... .. . . .... ......... .. Seulement je n'arrive pas à faire un texte qui se rafraichie, je sais pas comment dire mais il m'affiche seulement la dernières occurrence au lieu de voir les barres qui montent et qui descendent. Si vous avez une idée ça m'aiderais beaucoup, merci :) Quote Link to comment Share on other sites More sharing options...
eephyne Posted March 18, 2011 Share Posted March 18, 2011 (edited) si tu veux voir les barres qui montent et descendent va falloir rajouter du code. ex : tu récupère les données (spectorielle?) toutes les 500ms , donc tu rafraîchie ton textview tout les 500ms . A la place de ça , tu vas rafraîchir ton textview tout les 100ms (donc 5 fois plus) et entre les deux récupération de données tu va avoir toutes les 100ms ta barre qui descendra d'un cran. c'est ça que tu veux ? Edited March 18, 2011 by eephyne Quote Link to comment Share on other sites More sharing options...
Ice Posted March 18, 2011 Author Share Posted March 18, 2011 (edited) Oui c'est à peut près ça : j'ai une fréquence d'échantillonnage de 16 000Hz qui me rempli un buffer de 4096 cases sur lequel j'applique la transformé de fourier, ensuite je coupe le tableau de résultat en deux à cause du repliement. Donc j'ai un tableau de 2048 cases que je réduirai car je ne peux afficher que 30 lignes sur le téléphone. Merci pour ton aide :) Edited March 18, 2011 by Ice Quote Link to comment Share on other sites More sharing options...
kingpio Posted May 30, 2011 Share Posted May 30, 2011 Salut Ice, Je regarde moi-même les applis Android pour m'en faire une cet été si je me fais chier mais je suis plus que débutant, ton programme a l'air bien rempli de différentes fonctions d'Android est-ce que tu pourrais me l'envoyer (si tu es pour le "logiciel libre"...?), cela m'aide généralement bien plus qu'un livre!! Merci! Quote Link to comment Share on other sites More sharing options...
atharin Posted July 26, 2011 Share Posted July 26, 2011 Pour tes barre de son, j'utiliserais un thread avec une view, cela te permet de faire du realtime sans ralentir l'appli. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.