IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

SeekBar vitesse ou sensibilité


Sujet :

Android

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 11
    Points : 6
    Points
    6
    Par défaut SeekBar vitesse ou sensibilité
    Bonjour,

    Je viens vers vous car j'ai un petit soucis avec ma SeekBar sur mon application. Quand je me déplace trop vite avec le curseur des données ne sont pas prise en comptes.

    Je m'explique avec un simple code comme celui-ci, je n'obtiens pas ce que je souhaite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     mSeekbar.setSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
                @Override
                public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                    progress;
                    Log.d(TAG,"Luminosité : " + progress);
                }
                @Override
                public void onStartTrackingTouch(SeekBar seekBar) {
     
                }
                @Override
                public void onStopTrackingTouch(SeekBar seekBar) {
     
                }
            });
    En effet, quand le curseur passe de min à max rapidement la valeur de progress n'est pas "linéaire", des valeurs ne sont pas prise en compte.

    Ce que je souhaite faire est de diminué la vitesse de mouvement du bouton SeekBar lorsque l'utilisateur l'utilise, comme cela les valeurs sont toute renvoyée.

    Si vous avez une piste je suis preneur

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 475
    Points : 586
    Points
    586
    Par défaut
    Si l'utilisateur doit attendre une demi seconde avant chaque déplacement, autant dire qu'il va vite zapper ton appli.

    Tu peux peut-etre passer par une seekbar avec step, ca permet des paliers un peu plus grands que ceux de base. Je ne sais pas ce que tu fais de cette valeur de progress après, mais ce que je te suggère est de récupérer la valeur finale, puis faire une boucle qui te renvoie toutes les valeurs de "min" jusqu'à "progress".

    Sinon, dans la méthode crade et pour éviter le casser le fonctionnement normal de la seekbar, tu utilises une progressbar avec 2 boutons, + et -, et l'utilisateur est obligé de cliquer dessus pour faire varier la luminosité.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Salut,

    Merci de ta réponse

    Si l'utilisateur doit attendre une demi seconde avant chaque déplacement, autant dire qu'il va vite zapper ton appli.
    Je pensais pas mettre de délai mais plutôt forcer la vitesse de déplacement du curseur pour quelle soit moins rapide.

    Tu peux peut-etre passer par une seekbar avec step, ca permet des paliers un peu plus grands que ceux de base. Je ne sais pas ce que tu fais de cette valeur de progress après, mais ce que je te suggère est de récupérer la valeur finale, puis faire une boucle qui te renvoie toutes les valeurs de "min" jusqu'à "progress".
    J'envoi ensuite ces valeurs vers une carte qui gère la luminosité d'une LED, attendre la valeur final pour ensuite augmenter la luminosité linéairement n'est pas envisageable puisque c'est censé être temps réel.
    Ensuite avec step j'ai essayé mais ça fait un peu "escalier" l'augmentation de la luminosité, j'aurai souhaité plus linéaire.

    Sinon, dans la méthode crade et pour éviter le casser le fonctionnement normal de la seekbar, tu utilises une progressbar avec 2 boutons, + et -, et l'utilisateur est obligé de cliquer dessus pour faire varier la luminosité.
    J'ai essayé mais passer de la valeur min à max est assez long et si je reste appuyé même soucis que la seek bar c'est trop rapide certaine valeurs saute.

    Dans tous les cas je pense que diminué la vitesse pour la seekbar serait le mieux mais je ne trouve pas comment faire pour l'instant.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 475
    Points : 586
    Points
    586
    Par défaut
    Effectivement, pas sur que ca soit possible de changer la vitesse du curseur, à moins de créer toi même ta propre seekbar.

    Je pense que ma solution de la boucle de valeur reste la meilleure. Seulement il ne faut pas envoyer toutes les valeur d'un coup mais au fur et à mesure, dans la boucle. Chaque nouveau calcul prendra quelques millisecondes, et les changements seront imperceptibles. Et à ma fin, tu n'oublies pas de sauvegarder la valeur finale. Ainsi, si le nouveau "progress" est supérieur, pas besoin de repartir de 0, sinon tu fais un calcul inverse.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     mSeekbar.setSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
                @Override
                public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                    sendProgress(progress)
                    Log.d(TAG,"Luminosité : " + progress);
                }
    ...
     
    int lastProgress = 0;
     
    private void sendProgress(int progress){
     
         while (lastProgress <= progress){
         sendToCard(lastProgress);
         lastProgress++; 
         }
    }
    A essayer pour voir si ca ne rame pas ou ca ne bug pas.
    Dans un projet, on avait une seekbar qui modifiait la couleur d'un trajet sur une carte googlemap, et c'était très fluide

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    J'ai résolu mon problème, c'était pas à cause de la seekbar. J'avais un timer qui trainait

    Merci d'avoir pris le temps de m'aider !

Discussions similaires

  1. [SAX] Vitesse contre place en mémoire
    Par Dinaïz dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 15/10/2004, 13h37
  2. Vitesse du CPU, quantité de RAM... en C
    Par dclink dans le forum C
    Réponses: 4
    Dernier message: 07/07/2003, 20h48
  3. Comment repérer la vitesse du processeur?
    Par Paradam dans le forum Assembleur
    Réponses: 14
    Dernier message: 28/06/2003, 10h43
  4. Vitesse de compilation
    Par srvremi dans le forum C++Builder
    Réponses: 5
    Dernier message: 30/07/2002, 16h49
  5. Vitesse de la mémoire vidéo
    Par Anonymous dans le forum x86 16-bits
    Réponses: 3
    Dernier message: 06/06/2002, 20h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo