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 :

Modifier une ressource string


Sujet :

Android

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 18
    Points : 16
    Points
    16
    Par défaut Modifier une ressource string
    Bonjour à tous,

    Je crée une petite application où j'ai une Imageview (barre de chargement) statique, et une Imageview (petit curseur) mobile, le but étant de faire évoluer mon curseur sur la barre de chargement en utilisant une animation.

    Je souhaite faire évoluer le curseur à l'aide d'un android:toXDelta="@string/positionX", positionX étant ma variable sensée varier dans mon code java, sauf que les chaînes de caractère en tant que ressources sont statiques, du coup je ne sais pas comment faire pour pouvoir "mettre à jour" la cible du curseur. Y a t'il un moyen de modifier la valeur d'une ressource à partir du code Java?

    J'espère avoir clairement expliqué mon problème, dites moi si je ne suis pas clair

    Nicolas

  2. #2
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Cela se gère par une animation, et plus au niveau de tes vues, du genre :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    TranslateAnimation performAnimation = ...
    cursorImageView.startAnimation(performAnimation);
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Merci pour ta réponse Hephaistos, c'est en effet comme cela que j'ai géré le truc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        public void translation (View view){
            // On crée un utilitaire de configuration pour cette animation
            Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.anim1);
            // On l'affecte au widget désiré, et on démarre l'animation
            curseur.startAnimation(animation);
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate
            android:fromXDelta="0"
            android:toXDelta="@string/positionX"
            android:duration="1000"
            android:interpolator="@android:anim/linear_interpolator"
            android:fillAfter="true"
            android:fillEnabled="true"
            android:id="@+id/anim1"
            />
    </set>
    Maintenant j'aimerai pouvoir modifier la variable positionX depuis mon code java afin de mettre à jour la commande de position toXDelta. Est ce possible?

  4. #4
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Si tu passes par une animation xml, tu risques en effet de te retrouver bloqué. Moi je faisait référence à du 100% programmation :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    TranslateAnimation trans = new TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta);
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Ah bien vu! C'est pratique de passer par le XML mais pas toujours optimal
    Images attachées Images attachées  

  6. #6
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    LoL. Je t'ai donné la signature du constructeur. Il te suffit simplement de l'invoquer :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    TranslateAnimation trans = new TranslateAnimation(1.0f, 2.0f, 3.0f, 4.0f);
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Hephaistos007 Voir le message
    LoL. Je t'ai donné la signature du constructeur. Il te suffit simplement de l'invoquer :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    TranslateAnimation trans = new TranslateAnimation(1.0f, 2.0f, 3.0f, 4.0f);
    C'est bon ça fonctionne bien. Merci! Je laisse le code pour ceux que ça intéresserai.
    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
    18
    19
    20
    public class MainActivity extends Activity {
     
        ImageView curseur=null;
     
        public void translation(View view, float fromXDelta,float toXDelta, float fromYDelta, float toYDelta) {
            /*Animation animation=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.anim1);*/
            TranslateAnimation animation = new TranslateAnimation(fromXDelta, toXDelta, fromYDelta, toYDelta);
            animation.setDuration(1000);
            animation.setInterpolator(getApplicationContext(), linear_interpolator);
            curseur.startAnimation(animation);
        }
     
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            curseur=(ImageView)findViewById(R.id.curseur);
            translation(curseur,0,500,0,0);
     
        }
    }

  8. #8
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Pour pinailler, ta méthode attend des float, or tu lui as donné des int. La JVM a procédé à une conversion automatique qui est peut être évitée avec :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    translation(curseur,0.0f,500.0f,0.0f,0.0f);
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Hephaistos007 Voir le message
    Pour pinailler, ta méthode attend des float, or tu lui as donné des int. La JVM a procédé à une conversion automatique qui est peut être évitée avec :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    translation(curseur,0.0f,500.0f,0.0f,0.0f);
    En effet. Mais c'est bien de pinailler, c'est ça qui différencie l'amateur du professionnel j'imagine . Une dernière question, quelle est l'unité? J'avais lu dans le cours Open classroom que c'était des pourcentages mais ça m'étonne.
    android:fromXDelta est le point de départ sur l'axe X (en pourcentages).

  10. #10
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Selon la doc, il semble en effet que cela soit un pourcentage : 1.0 équivaut à 100%
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

Discussions similaires

  1. [WD17] Modifier une ressource de planning
    Par hicham-dj dans le forum WinDev
    Réponses: 9
    Dernier message: 29/08/2013, 17h32
  2. Modifier une ressource de type chaîne dans le code
    Par bobylastar49 dans le forum C#
    Réponses: 2
    Dernier message: 12/10/2012, 11h13
  3. modifier une resource string en cours d'execution
    Par mapmip dans le forum VB.NET
    Réponses: 7
    Dernier message: 16/03/2011, 17h40
  4. Modifier une ressource d'un executable
    Par sivaller dans le forum Développement Windows
    Réponses: 0
    Dernier message: 30/06/2010, 14h04
  5. [VB]probleme double quote dans une ressource de type string
    Par JulienCEA dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/02/2006, 12h38

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