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 :

Style de boutons avec verrouillage (latch)


Sujet :

Composants graphiques Android

  1. #1
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2013
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 52
    Points : 20
    Points
    20
    Par défaut Style de boutons avec verrouillage (latch)
    Bonjour
    J'ai simplifié mon problème au maximum puisque je ne réussis toujours pas à faire fonctionner ce simple bouton avec l'affichage de ses 3 états qu'il devrait me donner.

    J'ai tenté plusieurs exemples de plusieurs sites et le dernier est: http://developer.android.com/guide/t...ls/button.html.

    Malgré que je tente de suivre (à la lettre) leurs cheminements, l'affichage de mon arrière-plan du bouton pressed s'affiche comme focused
    et de plus, il ne verrouille pas sur la valeur Pressed mais retourne plutôt à sa valeur par Défaut.

    J'ai intégré une variable update dont j'affiche en haut son état pour vérifier l'état du bouton et il verrouille pourtant bien.

    - L'état du bouton qui est affiché sont l'état normal (le bouton est désélectionné ou pas encore pesé).
    - Pendant tout le temps que je clique sur le bouton, c'est l'arrière-plan Pressed qui s'affiche au lieu de Focused.
    - Et finalement, lorsque je relâche le bouton, il retourne à l'arrière-plan par Défaut au lieu d'afficher Pressed.

    J'ai tenté de modifier l'ordre dans mon fichier style sans succès.
    Plusieurs des autres exemples utilisent les flags Android:state_enabled ou Android:state_window_focused mais le résultat est toujours le même.

    Je ne trouve pas cette solution même aussi simple que possible...
    Un petit coup de main serait apprécié.


    Voici les 4 états possibles de mes boutons:
    Nom : Capture.JPG
Affichages : 479
Taille : 19,3 Ko

    et finalement les 5 états que j'obtiens lorsque je clique sur le fameux bouton: Avant, Cliqué et Relâché, Cliqué et Relâché.

    Ce que j'ai compris de tous les exemples c'est que le mode Cliqué devrait me donner l'image Focused
    et que le mode Relaché devait me donner l'image Pressed ce qui n'est pas le cas.

    Pourtant, mon code réussit à verrouiller la variable.
    Ce type de programmation est aussi supporté depuis l'API 14.
    Nom : Capture3.jpg
Affichages : 469
Taille : 36,2 Ko


    Voici mon fichier MainActivity.java:
    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    package com.mario.stylebouton;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
     
    public class MainActivity extends Activity {
     
    	Button button_send;
    	private TextView textViewResult;		// Texte explicatif de la valeur choisie
    	private boolean update = false;
     
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
     
    		//Affichage de la valeur par défaut de la sélection Accueil
    		textViewResult = (TextView) findViewById(R.id.textView1);
    		textViewResult.setText(R.string.bouton_normal);
     
    		button_send = (Button) findViewById(R.id.button_send);
    		button_send.setOnClickListener(new View.OnClickListener() {
            	public void onClick(View v) {
            		clickBouton("1");
            	}
            });
    	}
     
    	//Méthode qui est exécutée lorsque l'on clique sur un bouton
        public void clickBouton(String str) {
            if(update){
                    update = false;	//Toggle du bouton
                    textViewResult.setText(R.string.bouton_normal);
            }else{
            		update = true;	//Toggle du bouton
            		textViewResult.setText(R.string.bouton_pressed);
            }
        }
     
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		// Inflate the menu; this adds items to the action bar if it is present.
    		getMenuInflater().inflate(R.menu.main, menu);
    		return true;
    	}
     
    	@Override
    	public boolean onOptionsItemSelected(MenuItem item) {
    		// Handle action bar item clicks here. The action bar will
    		// automatically handle clicks on the Home/Up button, so long
    		// as you specify a parent activity in AndroidManifest.xml.
    		int id = item.getItemId();
    		if (id == R.id.action_settings) {
    			return true;
    		}
    		return super.onOptionsItemSelected(item);
    	}
    }
    Voici mon fichier activity_main.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
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="com.mario.stylebouton.MainActivity" >
     
        <Button
            android:id="@+id/button_send"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:onClick="sendMessage"
            android:background="@drawable/btn_custom"
            android:gravity="fill_horizontal|center" />
     
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="30dp"
            android:text="@string/bouton_normal"
            android:textColor="@color/rouge" />
     
    </RelativeLayout>
    Voici mon fichier btn_custom.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
            <item android:drawable="@drawable/button_focused"
              android:state_focused="true" />
        <item android:drawable="@drawable/button_pressed"
              android:state_pressed="true" />
        <item android:drawable="@drawable/button_default" />
    </selector>
    Voici mon fichier strings.xml:
    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"?>
    <resources>
     
        <string name="app_name">StyleBouton V1.0</string>
        <string name="bouton_normal">Bouton en état NORMAL (Défaut)</string>
        <string name="bouton_pressed">Bouton en état ACTIF (Pressed)</string>
        <string name="bouton_focused">Bouton en état Focussed</string>
        <string name="txt_bouton">Bouton</string>
     
        <string name="action_settings">Préférences</string>
     
    </resources>
    Et finalement mon fichier AndroidManifest.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
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.mario.stylebouton"
        android:versionCode="1"
        android:versionName="1.0" >
     
        <uses-sdk
            android:minSdkVersion="14"
            android:targetSdkVersion="15" />
     
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name=".MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
     
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
     
    </manifest>
    Merci pour l'aide.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2013
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 52
    Points : 20
    Points
    20
    Par défaut Focused lorsque je pèse sur la touche TAB de l'ADT
    Je me suis aperçu que lorsque j'utilise ce programme sur mon ADT, l'état Focused devient actif lorsque je pèse sur la touche TABULATION.

    Est-ce que ma version de API (15 pour une version 4.03) ne supporte pas cette fonction?

  3. #3
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    L'état "Focus" sert à quelques views, en particulier d'édition de texte (c'est la view "focused" qui recevra les touches tapées dans le clavier virtuel).
    Mais à part ça, un bouton ne demande jamais le state "focused". Par contre on peut y arriver avec les téléphones à "molette" (la molette permettant de passer d'une view à une autre).

    Dans ton selector:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
            <item android:drawable="@drawable/button_focused"
              android:state_focused="true" />
        <item android:drawable="@drawable/button_pressed"
              android:state_pressed="true" />
        <item android:drawable="@drawable/button_default" />
    Tu dis:
    Si le state est "focus" => button_focused
    SINON si le state est "pressed" => button_pressed
    SINON => button_default

    le state "pressed" n'étant atteint que quand le doigt est sur le bouton, il me semble que le comportement est bon...

    il n'y a pas de state "clicked".
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  4. #4
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2013
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 52
    Points : 20
    Points
    20
    Par défaut
    Merci pour ta réponse nicorman.

    Les explications du web montrent pourtant qu'il est possible d'avoir ces 3 états.
    J'ai vraiment essayé plusieurs exemples et tutoriels sur les styles de boutons mais je me trouve chaque fois avec le même résultat.
    J'ai même essayé certains exemples très bien expliqués et reproduits tel quel comme compilé par l'auteur.
    Exemple 1: http://www.mkyong.com/android/androi...ector-example/

    Exemple 2: http://www.androidcookbook.com/Recip...?recipeId=3307

    Exemple 3: http://avianey.blogspot.ca/2009/11/c...and-theme.html
    et bien d'autres que je n'afficherai pas...

    Comme tu le vois sur chacun de leur site, ils parlent bien de 3 états obtenus (et même 4 pour certains qui considèrent aussi l'état OFF)

    Les 3 états qu'ils obtiennent sont:
    1- Mode Normal (Tout va bien madame la marquise, on attend une action...)
    2- Mode Focused (Oupss, quelqu'un me pèse dessus...)
    3- Mode Pressed (Bon, je suis en action, alors je reste allumé pour qu'on le voit bien)

    Tous les exemples sans exception disent la même chose ou presque (avec quelques variations).

    Tous les exemples que j'ai essayé me donnent les mêmes résultats:
    - Mode Normal (en attente)
    - Mode Pressed (Pendant l'action où je pèse sur le bouton mais qui devrait plutôt être le mode Focused qui s'affiche)
    - Mode Normal (Quand je relâche le bouton alors que ça devrait être le mode Pressed qui est affiché)

    Je suis rendu à me dire que c'est mon compilateur (Eclipse) qui fait défaut en quelque part puisque si cela fonctionne pour tous les experts,
    alors pourquoi une copie exacte ne fonctionne pas sur ma machine?
    Au début, je croyais que la version de l'API était en cause mais le premier exemple que je t'ai référencé utilise un API 10 alors...

    Ce soir, j'essai de compiler quelques exemples avec Android Studio64 pour me contenter.

    Pourrais-je te demander d'essayer mon programme ou un des trois exemple?
    Cela renforcerait soit ma conviction ou celle des autres.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2013
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 52
    Points : 20
    Points
    20
    Par défaut
    Je viens de compiler avec la dernière version d'Android Studio 64 bits.
    J'ai le même résultat.

    Voici les 3 états qui sont normalement attendus par les exemples trouvés:
    1- Mode Normal (Tout va bien madame la marquise, on attend une action...)
    2- Mode Focused (Oupss, quelqu'un me pèse dessus...)
    3- Mode Pressed (Bon, je suis en action, alors je reste allumé pour qu'on le voit bien)

    et voici ce que j'ai plutôt:
    1- Mode Normal (Tout va bien madame la marquise, on attend une action...)
    2- J'ai le mode Pressed au lieu du Mode Focused (Oupss, quelqu'un me pèse dessus...)
    3- Retour au mode mode Normal au lieu du Mode Pressed (Bon, je suis en action, alors je reste allumé pour qu'on le voit bien)


    Donc, le compilateur n'est pas en faute.
    Mais je ne sais plus où chercher...

  6. #6
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Non mais ce que je disais c'est le comportement normal d'un bouton.

    Par défaut, il n'a pas de "state", disons en mode "normal"
    Quand on appuie dessus (touch), il passe en state "pressed"
    Quand on relâche, il repasse en mode "normal", et éventuellement génère un "onClick"

    Si tu veux que le bouton *reste* enfoncé... alors il faut se diriger vers les CheckBox.


    Si tu regardes la documentation: http://developer.android.com/guide/t...ls/button.html

    Il est bien marqué:
    The second <item>(state_focused) defines the bitmap to use when the button is focused (when the button is highlighted using the trackball or directional pad).
    (ou avec tab dans l'émulateur).

    Voilà la liste des "states" possibles:
    http://developer.android.com/guide/t...html#StateList
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  7. #7
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2013
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 52
    Points : 20
    Points
    20
    Par défaut Retour à la case départ.
    Au tout début de ce projet, j'avais une série de quatre radioBoutons avec 5 choix possibles par radioBoutons.
    Par défaut, la sélection était au milieu des cinq choix de chacun des radioBoutons.
    La sélection était indiquée par un point dans le rond.

    Mais je trouvais l'apparence fade et c'est pourquoi j'ai eu l'idée de changer les ronds en boutons pour améliorer le coup d'oeil.
    Mais je me butais au fameux rond sélectionné (avec un point dedans) que je voulais représenter par un bouton qui restait allumé (à environ 70% de l'état pressed).
    Voilà toute ma bataille de boutons qui m'amène finalement au CheckBox qui a une apparence encore plus laide que mes ronds de radioBoutons du début.

    Sincèrement, je trouve que les checkbox ressemblent en tous points (sauf l'apparence) aux RadioButtons.
    Qu'il y ait un crochet ou un point pour indiquer la sélection ne change rien.
    Suite à ta réponse, j'ai recherché un exemple ou un moyen d'afficher ces fameuses cases cochées en format bouton (donc aussi, avec un mode enfonçé),
    mais tous les exemples ne me montrent que des crochets ce que je ne veux pas.

    Suis-je rendu à la conclusion?
    Je crois que mon projet de bouton à quatre états (Off, Normal, Touch et Enfonçé) ne se fait tout simplement pas avec Android.

  8. #8
    bm
    bm est déconnecté
    Membre confirmé

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Points : 556
    Points
    556
    Billets dans le blog
    6
    Par défaut
    Conseil de nicroman :

    http://developer.android.com/guide/t...html#StateList

    Etat : touch ( hovered )
    Etat : pressé ( focused )
    Etat : cliqué ou "ON" ( pressed )
    Etat : "OFF" ( ni hovered,focused,pressed )

  9. #9
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Non.

    touché = state_pressed="true" : le bouton est touché par le doigt, il est donc pressé.
    enfoncé = state_pressed="true" : nous ne sommes pas sur desktop, il n'y a pas réellement de notion "le curseur survol le bouton" (sauf dans les cas exotiques des trackpad).
    normal = rien : l'état standard d'un bouton, il n'y a rien auquel il devrait réagir, et les boutons sont actifs par défaut.
    OFF = state_enabled="false" : le bouton n'est pas activé
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  10. #10
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2013
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 52
    Points : 20
    Points
    20
    Par défaut
    Merci pour ces réponses.
    J'aurais vraiment aimé avoir un style de bouton sélectionné (comme le fait d'ailleurs les radiogroups avec leur point dans le cercle ou les checkBox avec leur crochet dans le carré). Cela aide grandement à voir rapidement lequel des choix est sélectionné.
    Mais quand l'on change le tout pour des boutons, on ne peut plus voir le bouton qui a été sélectionné puisqu'il y a (finalement), seulement l'état pressed et normal qui sont visibles et différents.
    Ici, Android me déçoit un petit peu...

    Ma dernière question: Est-il possible de vérifier l'état state_enabled="false" et de s'en servir du côté JAVA afin de pouvoir travailler sur un possible 3e état de bouton?

  11. #11
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Oui.
    Ca passe par les méthodes getEnabled() pour récupérer l'information "bouton (in)actif" (et plus généralement, View (in)active) et setEnabled(boolean) pour changer son état.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  12. #12
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Non mais là ou on ne se comprends pas je crois c'est que:

    La "classe" (ou 'View' type) définit le comportement logique.
    L'UI elle est géré par le XML et le style.

    ToggleButton = Button avec la notion de checked (reste enfoncé) ou pas.
    CheckBox et RadioButton sont de "Compound" (affiche un texte à coté du bouton et non dans celui-ci).

    Après, c'est le style affiche ce bouton avec tel ou tel un background, et rien n'empêche de changer celui-ci.

    Style par défaut d'un ToggleButton:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <itemname="buttonStyleToggle">@style/Widget.Button.Toggle</item>
    Avec comme résultat:

    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
    <style name="Widget.Button.Toggle">
    <item name="background">@drawable/btn_toggle_bg</item>
    <item name="textOn">@string/capital_on</item>
    <item name="textOff">@string/capital_off</item>
    <item name="disabledAlpha">?attr/disabledAlpha</item>
    </style>
    btn_toggle_bg est jute un impilage de "button" et de "toggle"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+android:id/background" android:drawable="@android:drawable/btn_default_small" />
    <item android:id="@+android:id/toggle" android:drawable="@android:drawable/btn_toggle" />
    </layer-list>
    toggle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="false" android:drawable="@drawable/btn_toggle_off" />
    <item android:state_checked="true" android:drawable="@drawable/btn_toggle_on" />
    </selector>
    Donc rien n'empeche d'avoir un ToggleButton avec comme "background":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@drawable/button_pressed" android:state_checked="true" />
        <item android:drawable="@drawable/button_pressed" android:state_pressed="true" />
        <item android:drawable="@drawable/button_default" />
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  13. #13
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2013
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 52
    Points : 20
    Points
    20
    Par défaut Intéressant
    Merci de vos réponses

    Je n'avais pas encore fait de lecture sur les toggleButtons.
    Ils sont exactement dans l'état que j'aimerais avoir (normal et pressed).
    Je n'ai par contre pas vu les états Off et Focused...

    Au départ, je voulais 5 boutons qui réagissaient comme un radioButton (un seul sélectionné à la fois) mais le bouton sélectionné ne gardait pas son état pressé (allumé).
    Est-ce possible d'inclure un togglleButton au lieu d'un button dans un radioButton afin que celui sélectionné garde et affiche son état actif?
    Le fait de changer le code radioButton en XML de button à toggleButton et d'inclure les fichiers XML qui s'y rattachent serait-il réalisable?

Discussions similaires

  1. Réponses: 6
    Dernier message: 26/01/2011, 15h44
  2. Bouton avec menu style Windows (Bouton Demarrer) ?
    Par troxsa dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 02/12/2010, 13h37
  3. [AC-2003] Bouton avec style enfoncé
    Par moilou2 dans le forum IHM
    Réponses: 1
    Dernier message: 09/07/2009, 13h11
  4. problème changement de style de bouton avec I.E
    Par jounax dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 09/07/2008, 23h04
  5. [DOM] Ajouter un bouton avec un nouveau style
    Par Mehdi Feki dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/12/2005, 08h56

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