Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] Thread android

    20 juillet 2016 à 23:02:51

    Bonsoir tout le monde , je suis un debutant dans le developppement mobile la je suis bloque dans un truc je ne sais vraiment pas quoi faire .

    Voila mon probleme j'ai un arc cercle que je l'ai deja dessine je devrai changer l'angle fin de cette arc toute les secondes .

    Merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
      20 juillet 2016 à 23:56:57

      Salut,

      Pour répéter une action toutes les X secondes, une technique consiste à créer une méthode qui appelle la méthode postDelayed d'un Handler et qui lui-même rappelle la méthode.

      Par exemple :

      private void changerAngle()
        {
          handler.postDelayed(new Runnable()
          {
      
            @Override
            public void run()
            {
                //Changer l'angle ici...
      
                //On rappelle la méthode
                changerAngle();
              }
            }
          }, 1000);
        }
      
      
      • Partager sur Facebook
      • Partager sur Twitter
        21 juillet 2016 à 0:55:04

        j'ai essaye votre code ca marche
           protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
        
        
                new Handler().postDelayed(new Runnable() {
        
                    int b=350;
                    @Override
        
                    public void run() {
                        final drawview a=new drawview(MainActivity.this);
                    b=b-100;
                        a.setAngle(b);
                        setContentView(a);
                    }
        
                }, 5000);
        
        
        
            }
        
        
        }
        mais je ne cherche pas ca je veux que l'angle diminue par 10 degres chaque seconde

        -
        Edité par abdelalimouadden 21 juillet 2016 à 1:43:17

        • Partager sur Facebook
        • Partager sur Twitter
          21 juillet 2016 à 7:15:14

          Le code est un peu étrange. L'endroit où est déclaré ta variable b aussi.

          La façon dont c'est fait, je doute fort que le code s'exécute toutes les X secondes car à la fin tu appelles la méthode setContentView qui ne rappelle pas ton handler.

          Regarde bien mon code. J'ai isolé tout ça dans une méthode qui est rappelée à chaque fois ;)

          Si tu n'es pas à l'aise avec le Java et les implémentation inline, je te conseille de mieux maîtriser le langage avant de vouloir faire des choses poussée avec et notamment de l'android.

          -
          Edité par rolandl 21 juillet 2016 à 7:17:08

          • Partager sur Facebook
          • Partager sur Twitter
            21 juillet 2016 à 15:18:58

            j'ai regle probleme

            public class MainActivity extends AppCompatActivity {
            
                public int b=360;
                private Handler myHandler;
                private Runnable myRunnable = new Runnable() {
                    @Override
                    public void run() {
            
                        drawview a= new drawview(MainActivity.this);
                        a.setAngle(b);
                        setContentView(a);
                        b=b-10;
            
                        myHandler.postDelayed(this,2000);
                    }
                };
            
                @Override
                protected void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    setContentView(R.layout.activity_main);
            
                    myHandler = new Handler();
                    myHandler.postDelayed(myRunnable,2000); // on redemande toute les 500ms
            
                }
            
            
            
            }
            
            
            

             mais lorsque je lance l application l'imageview disparaiit je veux savoir comment dessiner ce cercle au dessus d'une photo

            • Partager sur Facebook
            • Partager sur Twitter
              21 juillet 2016 à 16:40:14

              Je pense que ton image disparaît car tu changes le contenu de ton activité en appelant la méthode setContentView dans ton drawable. Pourquoi fais-tu ça ? Sais-tu a quoi sert cette méthode ?

              Je te conseille de sérieusement te pencher sur le cours Android disponible sur le site ;)

              • Partager sur Facebook
              • Partager sur Twitter
                21 juillet 2016 à 23:15:32

                je sais a quoi sert la methode setContentview maintenant cela 4 heures je cherche a resoudre probleme j ai rien trouve si vous pouvez  aider svp .

                Ps : j aurai pas debuter mon application sans lire cours

                • Partager sur Facebook
                • Partager sur Twitter
                  21 juillet 2016 à 23:25:31

                  Je viens justement de te donner des indications tout en essayant de comprendre ton raisonnement...

                  Je pense que ton image disparaît car tu changes le contenu de ton activité en appelant la méthode setContentView dans ton drawable. Pourquoi fais-tu ça ?

                  • Partager sur Facebook
                  • Partager sur Twitter
                    21 juillet 2016 à 23:33:05

                    Bonsoir desole si je vous derange 

                    public class MainActivity extends AppCompatActivity {
                    
                    
                       Button btn;
                    public drawview a;
                    
                    
                      public  RelativeLayout mainLayout ;
                        private Handler myHandler;
                        int angle=270;
                        private Runnable myRunnable = new Runnable() {
                    
                    
                            public void run() {
                                if(b<360){
                                    mainLayout=(RelativeLayout)findViewById(R.id.rl);
                                    a=new drawview(MainActivity.this);
                                    a.setAngle(b);
                                   mainLayout.addView(a);
                                    myHandler.postDelayed(this,500);
                                    angle=angle-10;
                                    
                            }
                        }};
                        protected void onCreate(BundlesavedInstanceState) {
                            super.onCreate(savedInstanceState);
                            setContentView(R.layout.activity_main);
                    
                    
                    
                            btn=(Button)findViewById(R.id.bu);
                            btn.setOnClickListener(new View.OnClickListener()
                            {
                                public void onClick(View v){
                    
                                    myHandler = new Handler();
                                    myHandler.postDelayed(myRunnable,500);
                    
                    
                                }
                            });
                        }
                    
                    

                    voila mon nouveau code le probleme que j'ai que l'angle reste le meme ne change pas.

                    je vous prie de me repondre car je cherche depuis hier j'ai rien trouver

                    -
                    Edité par abdelalimouadden 24 juillet 2016 à 19:02:17

                    • Partager sur Facebook
                    • Partager sur Twitter
                      24 juillet 2016 à 1:53:27

                      personne ??

                      je suis bloque

                      -
                      Edité par abdelalimouadden 24 juillet 2016 à 19:02:09

                      • Partager sur Facebook
                      • Partager sur Twitter
                        25 juillet 2016 à 9:06:53

                        Je ne comprends même pas comment ton code peut compiler. Sauf erreur de ma part, ta variable b n'est pas déclarée. Avant de t'aventurer dans des handler, etc, le mieux serait peut-être de procéder par étape. Par exemple :

                        • affichage de l'image
                        • modification de l'angle en appuyant sur un bouton

                        Une fois ça en place, tu pourras automatiser le traitement. Et pourquoi ajouter à ton layout un nouveau drawview à chaque fois plutôt que de modifier un élément existant ?

                        • Partager sur Facebook
                        • Partager sur Twitter

                        [Android] Thread android

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown