Comment ajouter une bordure autour de la mise en page linéaire, sauf en bas? LinearLayout doit avoir une bordure à gauche, en haut et à droite, mais pas en bas.
Créez un fichier XML nommé border.xml dans le dossier pouvant être dessiné et insérez-y 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 fond à votre mise en page linéaire comme ceci:
Android:background="@drawable/border"
EDIT:
Ce XML a été testé avec une galaxie en cours d'exécution Gingerbread 2.3. et s'est parfaitement déroulé comme indiqué dans l'image ci-dessous:
AUSSI
testé avec galaxy s 3 en cours d'exécution JellyBean 4.1.2 et a fonctionné parfaitement comme indiqué dans l'image ci-dessous:
Enfin, il fonctionne parfaitement avec toutes les API
EDIT 2:
Vous pouvez également utiliser un trait pour conserver l’arrière-plan aussi transparent que possible tout en conservant 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.
Enregistrez ce fichier xml et ajoutez-le comme arrière-plan de la mise en page 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>
J'espère que cela t'aides! :)
Kenny a raison, je veux juste clarifier certaines choses.
border.xml
et le mettre dans le dossier res/drawable/
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>
en retrait comme Android:background="@drawable/border"
partout où vous voulez la frontière
Le mien d'abord n'a pas fonctionné parce que j'ai mis le border.xml
dans le mauvais dossier!
Voici un lien Github vers une bibliothèque légère et très facile à intégrer qui vous permet de jouer avec les bordures à votre guise pour n'importe quel widget, simplement basé sur un widget FrameLayout.
Voici un exemple de code rapide pour vous montrer à quel point c'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 en bas, supprimez les deux lignes de fond de ce widget personnalisé, et c'est tout.
Et non, je ne suis ni l'auteur de cette bibliothèque ni l'un de ses amis ;-)