Lord Yu Posted January 27, 2011 Share Posted January 27, 2011 Bonjour à tous, Je tente de changer le style d'un de mes boutons lorsque l'utilisateur appuie dessus (uniquement un changement de couleur du background). Pour se faire j'ai créé dans mon dossier drawable-hdpi un fichier xml stylebutton.xml contenant le code suivant: <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:background="#2a2410" /> <item android:state_presse="true" android:background="#2a2413"/> </selector> Mon fichier main.xml définissant mon interface contient le bouton suivant: <Button android:layout_width="fill_parent" android:layout_weight="1" android:layout_height="fill_parent" android:id="@+id/myButton" android:text="text" android:layout_margin="3dp" android:textColor="#c2920c" android:textStyle="bold" android:background="@drawable/buttonstyle" /> Le logcat me sort une InflateException pointant sur la ligne de mon bouton. Je ne vois pas du tout comment faire là, si quelqu'un pouvait me sortir de ce pétrin. Merci :) Link to comment Share on other sites More sharing options...
Naskel Posted January 28, 2011 Share Posted January 28, 2011 Salut, Il y a peut être un rapport avec le fait que tu as placé ton stylebutton.xml dans drawable-hdpi et pas dans un dossier color à moins que tu veux donner une couleur particulière en fonction de la résolution de l'écran (ce qui peut être une bonne méthode pour gérer les dégradés à voir) ce qui transforme ton code en : <Button android:layout_width="fill_parent" android:layout_weight="1" android:layout_height="fill_parent" android:id="@+id/myButton" android:text="text" android:layout_margin="3dp" android:textColor="#c2920c" android:textStyle="bold" android:background="@color/buttonstyle" /> Seconde anomalie : Je suis pas sur que cette état existe et tu as déjà géré l'état android:state_pressed : <item android:state_presse Voila. Cordialement, Link to comment Share on other sites More sharing options...
Lord Yu Posted January 28, 2011 Author Share Posted January 28, 2011 Salut, En effet, je me suis raté quelque part sur le state_pressed. Je vérifierais ce soir si c'est une erreur lorsque j'ai recopié mon code (j'ai retouché un peu ce que je montre ici pour simplifier donc c'est pas impossible), ou si j'ai vraiment cette horrible erreur dans mon code (et comment j'aurais pu la rater?). Je vous tiens donc au courant :) Le fait qu'il soit dans le dossier drawable n'est pas gainant je pense, j'ai déjà utilisé une méthode similaire (quoi que là dans l'attribut background il y avait un "@drawable/...") avec succès. Merci Naskel ;) edit: Voilà le code sans erreur de copie: <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:background="#2a2410" /> <item android:state_pressed="false" android:background="#2a2413"/> </selector> Je verrais ce soir en mettant tout ça dans un dossier color. Link to comment Share on other sites More sharing options...
Alocaly Posted January 29, 2011 Share Posted January 29, 2011 Il doit y avoir plus d'info dans le log cat sur l'erreur. Remarque : tu parles d'un fichier stylebutton, et tu references un buttonstyle... C'est une faute de recopie ? Emmanuel / Alocaly Link to comment Share on other sites More sharing options...
Elth Posted February 1, 2011 Share Posted February 1, 2011 J'ai regardé rapidement donc je suis ptet à côté de la plaque^^ Mais pourquoi pas quelque chose dans ce style là : tonBouton.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub final int action = event.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: System.out.println("Action down"); v.setBackgroundResource(R.drawable.tonBoutonAppuye); break; case MotionEvent.ACTION_UP: System.out.println("Action up"); v.setBackgroundResource(R.drawable.tonBoutonRelache); break; } return false; } }); En espérant que ça t'ai aidé un minimum... ;) Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.