Comment ajouter des bordures autour de la disposition linéaire sauf en bas?

comment ajouter bordure autour de la disposition linéaire sauf en bas ? LinearLayout doit avoir une bordure à gauche, en haut et à droite, mais pas en bas.

64
demandé sur LOG_TAG 2012-05-05 02:56:34

4 réponses

créer un fichier XML nommé border.xml dans le dossier à dessiner et y mettre le code suivant.

 <?xml version="1.0" encoding="utf-8"?>
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item> 
    <shape android:shape="rectangle">
      <solid android:color="#FF0000" /> 
    </shape>
  </item>   
    <item android:left="5dp" android:right="5dp"  android:top="5dp" >  
     <shape android:shape="rectangle"> 
      <solid android:color="#000000" />
    </shape>
   </item>    
 </layer-list> 

ajoutez ensuite un arrière-plan à votre disposition linéaire comme ceci:

         android:background="@drawable/border"

EDIT :

ce XML a été testé avec un galaxy S tournant GingerBread 2.3.3 et a fonctionné parfaitement comme le montre l'image ci-dessous:

enter image description here

aussi

testé avec galaxy s 3 tournant JellyBean 4.1.2 et a fonctionné parfaitement comme le montre l'image ci-dessous:

enter image description here

enfin ses travaux parfaitement avec tous les API

EDIT 2:

il peut également être fait en utilisant une course pour garder le fond transparent tout en gardant une bordure sauf en bas avec le code suivant.

<?xml version="1.0" encoding="utf-8"?>
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:left="0dp" android:right="0dp"  android:top="0dp"  
        android:bottom="-10dp"> 
    <shape android:shape="rectangle">
     <stroke android:width="10dp" android:color="#B22222" />
    </shape>
   </item>  
 </layer-list> 

espérons que cette aide .

169
répondu Android Stack 2015-07-13 20:16:54

enregistrer ce xml et ajouter comme arrière-plan pour le layout linéaire....

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <stroke android:width="4dp" android:color="#FF00FF00" /> 
    <solid android:color="#ffffff" /> 
    <padding android:left="7dp" android:top="7dp" 
            android:right="7dp" android:bottom="0dp" /> 
    <corners android:radius="4dp" /> 
</shape>

Espérons que cette aide! :)

56
répondu Kenny 2012-05-04 23:03:07

Kenny a raison, je veux juste clarifier certaines choses.

  1. créer le fichier border.xml et le mettre dans le dossier res/drawable/
  2. ajouter le code

    <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
       <stroke android:width="4dp" android:color="#FF00FF00" /> 
       <solid android:color="#ffffff" /> 
       <padding android:left="7dp" android:top="7dp" 
            android:right="7dp" android:bottom="0dp" /> 
       <corners android:radius="4dp" /> 
    </shape>
    
  3. set de base comme android:background="@drawable/border" où vous voulez la frontière

la première fois que la mienne n'a pas fonctionné parce que j'ai mis le border.xml dans le mauvais dossier!

22
répondu Jonas 2013-05-30 15:51:40

voici un GitHub link pour une bibliothèque légère et très facile à intégrer qui vous permet de jouer avec les bordures comme vous le souhaitez pour n'importe quel widget que vous voulez, simplement basé sur un widget FrameLayout.

Voici un rapide exemple de code pour vous de voir combien il est facile, mais vous trouverez plus d'informations sur le lien.

<com.khandelwal.library.view.BorderFrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:leftBorderColor="#00F0F0"
            app:leftBorderWidth="10dp"
            app:topBorderColor="#F0F000"
            app:topBorderWidth="15dp"
            app:rightBorderColor="#F000F0"
            app:rightBorderWidth="20dp"
            app:bottomBorderColor="#000000"
            app:bottomBorderWidth="25dp" >
    </com.khandelwal.library.view.BorderFrameLayout>

donc, si vous ne voulez pas de bordures sur le fond, supprimez les deux lignes sur le fond dans cette coutume widget, et c'est fait.

et Non, Je ne suis ni l'auteur de cette bibliothèque ni l'un de ses amis; -)

2
répondu PAD 2015-06-12 11:47:01