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 :

Designer un bouton arrondi comprenant 2 éléments graphiques


Sujet :

Composants graphiques Android

  1. #1
    Membre du Club
    Homme Profil pro
    Cisco
    Inscrit en
    Juillet 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Cisco
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 71
    Points : 55
    Points
    55
    Par défaut Designer un bouton arrondi comprenant 2 éléments graphiques
    Bonjour a tous/tes,

    voici le problème que je rencontre actuellement:

    Je souhaiterais juste englober deux éléments différents sur un fond arrondi comportant deux couleurs différentes ( le contour du bouton ainsi que l'intérieur) et le tout positionné à droite de l'écran comme ceci:



    Je veux donc deux éléments: une image (ImageView) et un texte (TextView) entouré d'un fond blanc avec un bord arrondi violet. Et je ne veux pas utiliser un d'image pour faire le background.

    J'ai testé ça:

    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/gris_fond">
        <LinearLayout
          android:orientation="vertical"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:paddingLeft="9dp"
          android:paddingRight="9dp"
          android:paddingBottom="9dp"
          android:paddingTop="0dp">
    <!-- company tel -->
            <RelativeLayout android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                            android:background="@drawable/rounded_textview">
                        <ImageView android:src="@drawable/phone_picto"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                      android:layout_toLeftOf="@+id/favoris_company_tel"
                                />
                        <TextView android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:id="@+id/favoris_company_tel"
                                android:textSize="17dp"
                                android:paddingTop="5dp"
                                             android:textColor="android:textColor="@color/jaune_basique"
                                android:layout_alignParentRight="true"/>
          </RelativeLayout>
        </LinearLayout>
    </ScrollView>
    et voici mon fichier rounded_textview.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="utf-8"?>
    <!--  res/drawable/rounded_edittext.xml -->
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" android:padding="2dp" >
        <solid android:color="@color/violet_fonce"/>
        <corners
         android:bottomRightRadius="15dp"
         android:bottomLeftRadius="15dp"
        android:topLeftRadius="15dp"
        android:topRightRadius="15dp"/>
    </shape>
    Et j'obtiens ça:



    Le bouton prend toute la longueur de la vue et non juste la longueur de l'icone telephone + text (numéro)..

    Merci de m'aider les amis

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Tout d'abord, évite la multitude de layouts imbriqués.
    Ce que tu souhaite faire peut être réalisé avec un seul layout.

    Il faut pour cela utiliser l'attribut drawableLeft du TextView

    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
    <?xml version="1.0" encoding="utf-8"?>
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/gris_fond">
        <LinearLayout
          android:orientation="vertical"
          android:layout_width="match_parent"
          android:layout_height="wrap_content">
     
                        <TextView android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:id="@+id/favoris_company_tel"
                                android:textSize="17dp"
                                android:paddingTop="5dp"
                                android:background="@drawable/rounded_textview" 
                                android:drawableLeft="@drawable/phone_picto"
                                android:textColor="@color/jaune_basique"/>
        </LinearLayout>
    </ScrollView>

  3. #3
    Membre du Club
    Homme Profil pro
    Cisco
    Inscrit en
    Juillet 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Cisco
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 71
    Points : 55
    Points
    55
    Par défaut
    Merci Simon, merci beaucoup pour l'actuce du :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    android:drawableLeft="@drawable/phone_picto"
    cela me permet donc maintenant d'avoir 2 objets en 1.
    Mais j'ai toujours besoin du relative layout puisque je veux que ce bouton soit positionné a droite de mon écran.

    j'ai donc ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <RelativeLayout android:layout_width="wrap_content"
    		    			android:layout_height="wrap_content">
    		<TextView android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:id="@+id/favoris_company_tel"
                                android:textSize="17dp"
                                android:paddingTop="5dp"
                                android:layout_alignParentRight="true"
                                android:background="@drawable/rounded_textview" 
                                android:drawableLeft="@drawable/phone_picto"
                                android:textColor="@color/jaune_basique"/>
    		</RelativeLayout>
    Saurais maintenant comment créer un simple bord violet avec un intérieur blanc par exemple ?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Tu peux aussi utiliser l'attribut suivant pour éviter une imbrication de plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    android:layout_gravity="right"
    Pour la bordure, il suffit de modifier ton fichier xml de shape.
    Il doit y avoir une balise stroke
    Ce lien pourra t'aider : http://idunnolol.com/android/drawables.html#shape

  5. #5
    Membre du Club
    Homme Profil pro
    Cisco
    Inscrit en
    Juillet 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Cisco
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 71
    Points : 55
    Points
    55
    Par défaut
    Pour finir j'ai finalement ce que je veux

    voici mon fichier qui dessine mon background (rounded_textview):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?xml version="1.0" encoding="utf-8"?>
    <shape
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle" android:padding="2dp">
        <corners android:bottomRightRadius="15dp"
         android:bottomLeftRadius="15dp"
      	android:topLeftRadius="15dp"
      	android:topRightRadius="15dp"/>
        <stroke
            android:width="2dp"
            android:color="@color/violet_basique"/>
        <solid
            android:color="@color/gris_fond"/>
    </shape>
    Merci beaucoup Simon pour l'astuce

    Peace

  6. #6
    Membre du Club
    Homme Profil pro
    Cisco
    Inscrit en
    Juillet 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Cisco
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 71
    Points : 55
    Points
    55
    Par défaut
    En effet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    android:layout_gravity="right"
    remplace bien mon relative layout (j'avais seulement testé android:gravity).

    Merci 1000 fois!!

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    l'attribut gravity sert pour l'intérieur de l'élément (utile par exemple pour les conteneurs) alors que layout_gravity sert pour un élément par rapport à son élément père.

    N'hésite pas à marquer ce post comme résolu

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

Discussions similaires

  1. Clignotement éléments graphiques
    Par Matt112 dans le forum AWT/Swing
    Réponses: 20
    Dernier message: 16/01/2008, 00h43
  2. Réponses: 22
    Dernier message: 04/04/2007, 15h24
  3. Effacer des éléments graphiques
    Par benjiprog dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 08/09/2006, 13h44
  4. [Access 2k] PB superposition d'éléments graphiques
    Par elgringo2007 dans le forum Access
    Réponses: 2
    Dernier message: 20/06/2006, 17h06
  5. [CSS] Apparence des éléments graphiques (boutons, ...)
    Par oursblanc dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 28/02/2006, 20h01

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