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

Composants graphiques Android Discussion :

Faire défiler 3 images avec boutons suivant/précédent


Sujet :

Composants graphiques Android

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Faire défiler 3 images avec boutons suivant/précédent
    Bonjour,

    Voila, je débute sur Android et je voudrai pouvoir changer une image suivant l'appui sur 2 boutons : Suivant / Précédent.

    J'ai vu plusieurs choses sur le net mais rien de concret: une imageview, un array, thread, activity, intent etc ... Du coup je ne sais plus du tout quoi utiliser, j'ai bien mon image qui s'affiche dans un imageview pour l'instant, il me faut donc une méthode pour changer cette image suivant l'appui du bouton.

    Ces 3 images sont enfaite des images de tensions, si on appui sur Suivant on augmente la valeur, si on appui sur précédent on la diminue, il y a 3 images en tout donc 3 tensions.

    Merci d'avance pour votre aide

    Sked

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 354
    Points : 593
    Points
    593
    Par défaut Réponse possible
    A ta place je passerais par une ArrayList:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    List images = new ArrayList();
    images.add(Image image1);
    ...
    ou:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    List images = new ArrayList();
    images.add(String "chemin_image1");
    et tu choisis l'image par l'index de l'ArrayList que tu incrémente ou décrémente en fonction de l'index utilisé pour l'affichage...

  3. #3
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Points : 1 499
    Points
    1 499
    Par défaut
    Bonjour.

    Pour moi tu devrais aller voir du côté de la Gallery : http://developer.android.com/guide/t...o-gallery.html
    Ingénieur Développement Mobile (Android / Windows Phone / Blackberry10)

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Pour la Gallery je ne pense pas que ca soit interessant dans mon cas il faut que j'ai une seule image affichée à la fois et qu'elle soit remplacée uniquement par l'appui sur le bouton + ou - .
    J'essaie avec les array, je suis toujours ouvert à toute propositions

  5. #5
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Tu mets 2 buttons et une imageview.

    Avec un action listener tu changes l'image lors de l'appuie sur les boutons.
    http://developer.android.com/referen...et/Button.html
    Keith Flint 1969 - 2019

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 354
    Points : 593
    Points
    593
    Par défaut
    viish >merci pour le lien...

    Cela dit la classe exemple passe quand même par une indexation des fichiers et parait un peu complexe.

    Créer sa petite classe perso à la main me parait un peu plus accessible même si ça à pas l'air si complexe que ça !

    Bonne journée à tous !

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Je n'arrive toujours pas a faire des boutons suivant / précédent, du coup je passe par 3 boutons, un pour chaque image mais c'est pas le même principe...

    Voila mon code:
    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
    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
     
    package com.duic;
     
    import android.app.Activity;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.ImageView;
     
    public class Relax extends Activity implements OnClickListener{
     
    	Button btn5v = null;
    	Button btn10v = null;
    	Button btn15v = null;
    	ImageView imageview;
     
        @Override 
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.relax);
     
            btn5v = (Button)findViewById(R.id.btn5v);
            btn10v = (Button)findViewById(R.id.btn10v);
            btn15v = (Button)findViewById(R.id.btn15v);
            // On spécifie que le le listener est notre classe
            btn5v.setOnClickListener(this);
            btn10v.setOnClickListener(this);
            btn15v.setOnClickListener(this);
        	}
     
    	@Override
    	public void onClick(View v) {
    		if(v == btn5v) {
    			ImageView image = (ImageView) findViewById(R.id.img);
    	        Bitmap bMap = BitmapFactory.decodeResource(getResources(), R.drawable.carre1);
    	        image.setImageBitmap(bMap);
    	}	
    		if(v == btn10v) {
    		ImageView image = (ImageView) findViewById(R.id.img);
            Bitmap bMap = BitmapFactory.decodeResource(getResources(), R.drawable.carre2);
            image.setImageBitmap(bMap);
    	}
    		if(v == btn15v) {
    			ImageView image = (ImageView) findViewById(R.id.img);
    	        Bitmap bMap = BitmapFactory.decodeResource(getResources(), R.drawable.carre3);
    	        image.setImageBitmap(bMap);
    		}
    }
    }
    ca serai plus classe avec 2 boutons au lieu de 3 quand même :p
    voila le XML
    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
    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
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:background="@drawable/relax">
     
        <RadioButton 
        android:id="@+id/btn5v" 
        android:layout_marginTop="10px"
    	android:layout_marginLeft="10px"
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:text="5V">
        </RadioButton>
     
        <RadioButton 
        android:id="@+id/btn10v" 
        android:layout_marginTop="50px"
    	android:layout_marginRight="18px"
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:text="10V">
        </RadioButton>
     
        <RadioButton 
        android:id="@+id/btn15v" 
        android:layout_marginTop="90px"
    	android:layout_marginRight="18px"
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:text="15V">
        </RadioButton>
     
        <TextView 
        android:text="TextView" 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:id="@+id/textView1">
        </TextView>
     
        <ImageView 
        android:src="@drawable/carre1" 
        android:id="@+id/img" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content">
        </ImageView>
     
    </LinearLayout>
    Si vous avez une solution pour avoir un + et - pour changer les images je suis preneur.
    Merci encore

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 322
    Points : 494
    Points
    494
    Par défaut
    Essaye de faire ça :
    Tu stockes tes identifiants d'images dans un ArrayList<Integer>;
    Tu déclares un entier qui te servira de compteur.
    Et après tu gères le clique comme tu l'as déjà fais

    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
     
    if(v == buttonPred) {
    //Test pour vérifier que le compteur ne descend pas en dessous de zero
      compteur--;
      ImageView image = (ImageView) findViewById(R.id.img);
      Bitmap bMap = BitmapFactory.decodeResource(getResources(), maListDIdentifiants.get(compteur));
      image.setImageBitmap(bMap);
    }	
    if(v == buttonSuiv) {
    //Test pour voir si on ne dépasse pas la taille de la liste
      compteur++;
      ImageView image = (ImageView) findViewById(R.id.img);
      Bitmap bMap = BitmapFactory.decodeResource(getResources(), maListDIdentifiants.get(compteur));
      image.setImageBitmap(bMap);
    }

  9. #9
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Points : 1 499
    Points
    1 499
    Par défaut
    Bonjour.

    Et si tu essaies quelque chose dans ce genre ?

    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
    21
    22
    23
    24
    25
    26
    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.relax);
     
            int image = 0;
     
            btnSuivant = (Button)findViewById(R.id.btn5v);
            btnPrecedent = (Button)findViewById(R.id.btn10v);
            // On spécifie que le le listener est notre classe
            btnSuivant .setOnClickListener(this);
            btnPrecedent .setOnClickListener(this);
        	}
     
    	@Override
    	public void onClick(View v) {
    		if(v == btnSuivant ) {
                         image++;
    	        }	
    		if(v == btnPrecedent ) {
                         image--;
    	        }
     
    	ImageView image = (ImageView) findViewById(R.id.img);
    	Bitmap bMap = getImage(image); // A toi de faire la fonction
    	image.setImageBitmap(bMap);
            }
    Ingénieur Développement Mobile (Android / Windows Phone / Blackberry10)

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Alors je suis partis sur cette solution (Merci Christophe)
    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
    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
     
    package com.duic;
     
    import java.util.ArrayList;
     
    import android.app.Activity;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.ImageView;
     
    public class Relax extends Activity implements OnClickListener{
    	ImageView imageview;
    	Button Pred = null;
    	Button Suiv = null;
     
    	private ArrayList<Integer> maList;
    	private int compteur;
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    	maList = new ArrayList<Integer>();
    	maList.add(R.drawable.carre1);
    	maList.add(R.drawable.carre2);
    	maList.add(R.drawable.carre3);
    	compteur = 0;
    	this.findViewById(R.id.Pred).setOnClickListener(this);
    	this.findViewById(R.id.Suiv).setOnClickListener(this);
    	}
     
    	@Override
    	public void onClick(View v) {
    	if(v == Pred) {
    	if(compteur > 0)
    	compteur--;
    	ImageView image = (ImageView) findViewById(R.id.img);
    	Bitmap bMap = BitmapFactory.decodeResource(getResources(), maList.get(compteur));
    	image.setImageBitmap(bMap);
    	}
    	if(v == Suiv) {
    	if(compteur < maList.size())
    	compteur++;
    	ImageView image = (ImageView) findViewById(R.id.img);
    	Bitmap bMap = BitmapFactory.decodeResource(getResources(), maList.get(compteur));
    	image.setImageBitmap(bMap);
    	}
    	} 
    }
    Et les nombreuses erreurs du LogCat... c'est pas beau
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    03-24 17:53:34.239: INFO/ActivityManager(52): Starting activity: Intent { cmp=com.duic/.Relax }
    03-24 17:53:34.339: DEBUG/AndroidRuntime(269): Shutting down VM
    03-24 17:53:34.349: WARN/dalvikvm(269): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
    03-24 17:53:34.349: ERROR/AndroidRuntime(269): Uncaught handler: thread main exiting due to uncaught exception
    03-24 17:53:34.369: ERROR/AndroidRuntime(269): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.duic/com.duic.Relax}: java.lang.NullPointerException
    03-24 17:53:34.369: ERROR/AndroidRuntime(269):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
    03-24 17:53:34.369: ERROR/AndroidRuntime(269):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
    03-24 17:53:34.369: ERROR/AndroidRuntime(269):     at android.app.ActivityThread.access$2200(ActivityThread.java:119)
    03-24 17:53:34.369: ERROR/AndroidRuntime(269):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
    03-24 17:53:34.369: ERROR/AndroidRuntime(269):     at android.os.Handler.dispatchMessage(Handler.java:99)
    03-24 17:53:34.369: ERROR/AndroidRuntime(269):     at android.os.Looper.loop(Looper.java:123)
    03-24 17:53:34.369: ERROR/AndroidRuntime(269):     at android.app.ActivityThread.main(ActivityThread.java:4363)
    03-24 17:53:34.369: ERROR/AndroidRuntime(269):     at java.lang.reflect.Method.invokeNative(Native Method)
    03-24 17:53:34.369: ERROR/AndroidRuntime(269):     at java.lang.reflect.Method.invoke(Method.java:521)
    03-24 17:53:34.369: ERROR/AndroidRuntime(269):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
    03-24 17:53:34.369: ERROR/AndroidRuntime(269):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
    03-24 17:53:34.369: ERROR/AndroidRuntime(269):     at dalvik.system.NativeStart.main(Native Method)
    03-24 17:53:34.369: ERROR/AndroidRuntime(269): Caused by: java.lang.NullPointerException
    03-24 17:53:34.369: ERROR/AndroidRuntime(269):     at com.duic.Relax.onCreate(Relax.java:28)
    03-24 17:53:34.369: ERROR/AndroidRuntime(269):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    03-24 17:53:34.369: ERROR/AndroidRuntime(269):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
    03-24 17:53:34.369: ERROR/AndroidRuntime(269):     ... 11 more
    03-24 17:53:34.389: INFO/Process(52): Sending signal. PID: 269 SIG: 3
    03-24 17:53:34.399: INFO/dalvikvm(269): threadid=7: reacting to signal 3
    03-24 17:53:34.399: ERROR/dalvikvm(269): Unable to open stack trace file '/data/anr/traces.txt': Permission denied
    03-24 17:53:36.209: INFO/Process(269): Sending signal. PID: 269 SIG: 9
    03-24 17:53:36.229: INFO/WindowManager(52): WIN DEATH: Window{43d23258 com.duic/com.duic.menu paused=false}
    03-24 17:53:36.229: INFO/ActivityManager(52): Process com.duic (pid 269) has died.
    03-24 17:53:36.279: INFO/ActivityManager(52): Start proc com.duic for activity com.duic/.menu: pid=275 uid=10031 gids={}
    03-24 17:53:36.779: DEBUG/ddm-heap(275): Got feature list request
    03-24 17:53:36.909: INFO/UsageStats(52): Unexpected resume of com.duic while already resumed in com.duic
    03-24 17:53:36.949: INFO/ActivityManager(52): Displayed activity com.duic/.menu: 700 ms (total 2658 ms)
    03-24 17:53:37.199: DEBUG/dalvikvm(275): GC freed 653 objects / 52432 bytes in 96ms
    03-24 17:53:37.629: WARN/InputManagerService(52): Got RemoteException sending setActive(false) notification to pid 269 uid 10031

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 322
    Points : 494
    Points
    494
    Par défaut
    Tes boutons Pred et Suiv sont toujours à null !!

    Faut un truc du genre :
    Pred = (Button) this.findViewById(R.id.Pred);

  12. #12
    Membre actif
    Inscrit en
    Décembre 2008
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 280
    Points : 261
    Points
    261
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.findViewById(R.id.Pred).setOnClickListener(this);
    Ici je pense qu'il y a 2 choses à voir :

    1) tu veux trouver une vue mais tu n'a pas précisé avant le setContentView(R.layout.relax) !!! Ce qui fait que dans ton this, il n'y à pas le bouton que tu souhaite.

    2) Tu utilise une fonction qui te renvoie une View et non directement un Button, il faut donc caster avant d'éffectuer ta méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((Button)this.findViewById(R.id.Pred)).setOnClickListener(this)

    PS : inspire toi du post de viish !!!

    Paye Tes Dettes - Applciation android.

    DevHackSecure - Pense bête d'un étudiant en informatique - Tutos DEV

    " I also realize that _everybody_ thinks that they are right, and that they are supported by all other right-thinking people. That's just how people work. We all think we're better than average." Linus Torvalds

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup pour vos réponses!!!
    Effectivement j'ai rajouter dans le OnCreate
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	super.onCreate(savedInstanceState);
    	setContentView(R.layout.relax);
    et pour les boutons:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    this.findViewById(R.id.Pred).setOnClickListener(this);
    this.findViewById(R.id.Suiv).setOnClickListener(this);
     
    Pred = (Button) this.findViewById(R.id.Pred); 
    Suiv = (Button) this.findViewById(R.id.Suiv);
    L'écran fonctionne, les boutons aussi. Je n'ai pas de soucis avec le "Précédent" mais lorsque j'arrive a la fin de mon arraylist et que je fais "Suivant" je plante l'appli.
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    03-25 10:30:37.532: DEBUG/AndroidRuntime(970): Shutting down VM
    03-25 10:30:37.532: WARN/dalvikvm(970): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
    03-25 10:30:37.542: ERROR/AndroidRuntime(970): Uncaught handler: thread main exiting due to uncaught exception
    03-25 10:30:37.562: ERROR/AndroidRuntime(970): java.lang.IndexOutOfBoundsException: Invalid location 3, size is 3
    03-25 10:30:37.562: ERROR/AndroidRuntime(970):     at java.util.ArrayList.get(ArrayList.java:341)
    03-25 10:30:37.562: ERROR/AndroidRuntime(970):     at com.duic.Relax.onClick(Relax.java:50)
    03-25 10:30:37.562: ERROR/AndroidRuntime(970):     at android.view.View.performClick(View.java:2364)
    03-25 10:30:37.562: ERROR/AndroidRuntime(970):     at android.view.View.onTouchEvent(View.java:4179)
    03-25 10:30:37.562: ERROR/AndroidRuntime(970):     at android.widget.TextView.onTouchEvent(TextView.java:6541)
    03-25 10:30:37.562: ERROR/AndroidRuntime(970):     at android.view.View.dispatchTouchEvent(View.java:3709)
    03-25 10:30:37.562: ERROR/AndroidRuntime(970):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
    03-25 10:30:37.562: ERROR/AndroidRuntime(970):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
    03-25 10:30:37.562: ERROR/AndroidRuntime(970):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
    03-25 10:30:37.562: ERROR/AndroidRuntime(970):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
    03-25 10:30:37.562: ERROR/AndroidRuntime(970):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
    03-25 10:30:37.562: ERROR/AndroidRuntime(970):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
    03-25 10:30:37.562: ERROR/AndroidRuntime(970):     at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
    03-25 10:30:37.562: ERROR/AndroidRuntime(970):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
    03-25 10:30:37.562: ERROR/AndroidRuntime(970):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
    03-25 10:30:37.562: ERROR/AndroidRuntime(970):     at android.os.Handler.dispatchMessage(Handler.java:99)
    03-25 10:30:37.562: ERROR/AndroidRuntime(970):     at android.os.Looper.loop(Looper.java:123)
    03-25 10:30:37.562: ERROR/AndroidRuntime(970):     at android.app.ActivityThread.main(ActivityThread.java:4363)
    03-25 10:30:37.562: ERROR/AndroidRuntime(970):     at java.lang.reflect.Method.invokeNative(Native Method)
    03-25 10:30:37.562: ERROR/AndroidRuntime(970):     at java.lang.reflect.Method.invoke(Method.java:521)
    03-25 10:30:37.562: ERROR/AndroidRuntime(970):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
    03-25 10:30:37.562: ERROR/AndroidRuntime(970):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
    03-25 10:30:37.562: ERROR/AndroidRuntime(970):     at dalvik.system.NativeStart.main(Native Method)
    03-25 10:30:37.582: INFO/Process(52): Sending signal. PID: 970 SIG: 3
    03-25 10:30:37.582: INFO/dalvikvm(970): threadid=7: reacting to signal 3
    03-25 10:30:37.582: ERROR/dalvikvm(970): Unable to open stack trace file '/data/anr/traces.txt': Permission denied
    J'ai essayé avec un compteur = 3 ou compteur < array.size() de remettre l'image par défaut de l'imageview mais l'erreur persiste.

  14. #14
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    03-25 10:30:37.562: ERROR/AndroidRuntime(970): java.lang.IndexOutOfBoundsException: Invalid location 3, size is 3

    J'ai essayé avec un compteur = 3 ou compteur < array.size() de remettre l'image par défaut de l'imageview mais l'erreur persiste.
    Tu as clairement un souci de taille , ton tableau est de longueur 3 alors que pour autant que vas chercher sa valeur à son index 3 qui n'existe pas !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(compteur < maList.size())
    	compteur++;
    Ton erreur est là, tu ne peux pas tester avant de modifier la valeur du compteur , sinon tu exploses ta liste .
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 322
    Points : 494
    Points
    494
    Par défaut
    Si la taille d'un tableau ou d'une liste est de 3 les éléments sont stockés en 0, 1 et 2. Donc ArrayList.get(3) va dépasser la taille de la liste. Je me suis trompé la dernière fois... tu dois mettre compteur < (arraylist.size() - 1)

  16. #16
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    En bataillant un peu problème résolu j'ai mis un if de plus... c'est vrai je que les tableaux commencent à 0 et pas à 1 ...
    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
    	@Override
    	public void onClick(View v) {
    	if(v == Pred) {
    	if(compteur > 0)	
    	compteur--;
    	}
    	if(v == Suiv) {
    	if(compteur < maList.size())
    	compteur++;
    	}
    	if(v == Suiv) {
    		if(compteur > 2)
    		compteur = 2;
    		}
    	ImageView image = (ImageView) findViewById(R.id.img);
    	Bitmap bMap = BitmapFactory.decodeResource(getResources(), maList.get(compteur));
    	image.setImageBitmap(bMap);
    	}
    Merci beaucoup à vous tous pour votre précieuse aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Faire défiler des images avec des boutons
    Par vanilou dans le forum Interfaces Graphiques
    Réponses: 6
    Dernier message: 27/06/2012, 14h54
  2. Réponses: 3
    Dernier message: 04/08/2010, 10h19
  3. page avec bouton suivant/précédent
    Par gagnier dans le forum Langage
    Réponses: 6
    Dernier message: 07/06/2010, 22h09
  4. Comment faire défiler plusieurs images avec effet de transition
    Par eyango dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 01/02/2008, 16h33
  5. Réponses: 1
    Dernier message: 11/09/2006, 20h07

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