Je suis capable de dessiner une bordure sur une mise en page linéaire, mais elle est dessinée de tous les côtés. Je veux le limiter uniquement au côté droit, comme vous le faites en CSS (border-right: 1px solid red;).
J'ai essayé cela, mais cela dessine toujours de tous les côtés:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle" >
<stroke
android:height="2dp"
android:width="2dp"
android:color="#FF0000" />
<solid android:color="#000000" />
<padding
android:bottom="0dp"
android:left="0dp"
android:right="1dp"
android:top="0dp" />
<corners
android:bottomLeftRadius="0dp"
android:bottomRightRadius="5dp"
android:radius="1dp"
android:topLeftRadius="5dp"
android:topRightRadius="0dp" />
</shape>
</item>
Des suggestions pour y parvenir?
BTW, je ne veux pas utiliser le hack de mettre une vue de largeur 1dp du côté requis.
Réponses:
Vous pouvez l'utiliser pour obtenir une bordure d'un côté
ÉDITÉ
Comme beaucoup d'entre eux voulaient avoir une bordure d'un côté avec un fond transparent, j'ai implémenté une
BorderDrawable
qui pourrait me donner des bordures de taille et de couleur différentes de la même manière que nous utilisons le CSS. Mais cela ne pouvait pas être utilisé via xml. Pour prendre en charge XML, j'ai ajouté unBorderFrameLayout
dans lequel votre mise en page peut être enveloppée.Voir mon github pour la source complète.
la source
Facile comme un gâteau, permettant un bg transparent:
Modifiez l'angle pour modifier l'emplacement de la bordure:
la source
il est également possible d'implémenter ce que vous voulez en utilisant une seule couche
ainsi que la bordure gauche est visible , mais vous pouvez obtenir une combinaison que vous voulez en jouant avec
bottom
,left
,right
et lestop
attributs de l'item
élémentla source
Pour obtenir une bordure sur un seul côté d'un dessin, appliquez un négatif
inset
sur les 3 autres côtés (ce qui fait que ces bordures sont dessinées hors de l'écran).Cette approche est similaire à la réponse de naykah, mais sans l'utilisation d'un
layer-list
.la source
insertX
en haut pour décider quelles frontières afficher et quoi non.Comme alternative (si vous ne souhaitez pas utiliser d'arrière-plan), vous pouvez facilement le faire en créant une vue comme suit:
Pour avoir une bordure droite uniquement, placez ceci après la mise en page (là où vous voulez avoir la bordure):
Pour avoir une bordure gauche uniquement, placez-la avant la mise en page (où vous voulez avoir la bordure):
A travaillé pour moi ... J'espère que c'est de l'aide ....
la source
J'ai pu obtenir l'effet avec le code suivant
Vous pouvez vous adapter à vos besoins en matière de position de la frontière en modifiant la direction du déplacement
la source
la source
Un autre excellent exemple
la source
Il n'y a aucune mention sur les fichiers de neuf patchs ici. Oui, vous devez créer le fichier, mais c'est un travail assez facile et c'est vraiment une solution " cross-version et transparence ". Si le fichier est placé dans le
drawable-nodpi
répertoire, il fonctionne enpx
fonction, et dans lesdrawable-mdpi
travaux à peu près comme base de dp (grâce au rééchantillonnage).Le fichier d'exemple pour la question d'origine ( bordure droite: 1px rouge fixe; ) se trouve ici:
http://ge.tt/517ZIFC2/v/3?c
Placez-le simplement dans le
drawable-nodpi
répertoire.la source
Bordures de différentes couleurs. J'ai utilisé 3 articles.
la source