139 votes

<style>Style bottom Line in Android</style>

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.

8voto

Ketan Ahir Points 3751

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.

entrer la description de l'image ici

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

6voto

adhi Points 316

Une solution simple :

Créez un fichier drawable nommé edittext_stroke.xml dans le dossier drawable. Ajoutez le code suivant :

Dans le fichier de mise en page, ajoutez le drawable à l'edittext comme

android:drawableBottom="@drawable/edittext_stroke"

5voto

Lanitka Points 569

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)

4voto

sourav pandit Points 11

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);

4voto

Mobistry Points 2902

Cela a le mieux fonctionné pour moi :

Affiche la ligne uniquement en bas. Vous pouvez facilement modifier la largeur du trait à la taille que vous souhaitez et également mettre à jour le haut, le gauche et le droite en conséquence.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X