J'ai besoin de créer une forme android pour que seule le bas ait un contour (une ligne en pointillé). Lorsque j'essaie ce qui suit, le contour divise la forme en deux juste au centre. Est-ce que quelqu'un sait comment faire en sorte que ça fonctionne ? Le contour doit être la ligne/bordure du bas. J'utilise la forme comme arrière-plan à un TextView. S'il vous plaît, ne vous souciez pas de la raison pour laquelle j'en ai besoin.
Réponses
Trop de publicités?Je pense que vous n'avez pas besoin d'utiliser la forme si je vous ai bien compris.
Si vous cherchez comme indiqué dans l'image suivante, utilisez la disposition suivante.
MODIFIER
jouez avec ces propriétés vous obtiendrez le résultat
android:top="dimension"
android:right="dimension"
android:bottom="dimension"
android:left="dimension"
essayer comme ça
Généralement, pour des tâches similaires - j'ai créé un drawable de type layer-list comme celui-ci :
L'idée est que d'abord vous dessinez le rectangle avec underlineColor et ensuite par dessus vous dessinez un autre rectangle avec la couleur du bouton (buttonColor) mais en appliquant un padding en bas. Cela fonctionne toujours.
Mais quand j'ai eu besoin que la couleur du bouton soit transparent je n'ai pas pu utiliser le drawable ci-dessus. J'ai trouvé une autre solution
(comme vous pouvez le voir ici, la couleur principale du bouton est transparente et white_box est juste un drawable rectangle simple avec un solid blanc)
Utilisez ce xml pour changer la couleur selon votre choix.
Dans le cas où vous souhaitez le faire de manière programmative
public static Drawable getStorkLineDrawable(@ColorInt int colorStrok, int iSize, int left, int top, int right, int bottom)
{
GradientDrawable gradientDrawable = new GradientDrawable();
gradientDrawable.setShape(GradientDrawable.RECTANGLE);
gradientDrawable.setStroke(iSize, colorStrok);
LayerDrawable layerDrawable = new LayerDrawable(new Drawable[]{gradientDrawable});
layerDrawable.setLayerInset(0, left, top, right, bottom);
return layerDrawable;
}
Appelez cette méthode comme suit
Drawable yourLineDrawable= getStorkLineDrawable(yourColor, iSize, -iSize, -iSize, -iSize, 0);