Est-il possible de tracer une bordure autour d'une vue de texte?
android
android-layout
textview
yamspog
la source
la source
Réponses:
Vous pouvez définir une forme dessinable (un rectangle) comme arrière-plan pour la vue.
Et rectangle drawable back.xml (placé dans le dossier res / drawable):
Vous pouvez utiliser
@android:color/transparent
pour que la couleur unie ait un arrière-plan transparent. Vous pouvez également utiliser un remplissage pour séparer le texte de la bordure. pour plus d'informations, voir: http://developer.android.com/guide/topics/resources/drawable-resource.htmlla source
Permettez-moi de résumer quelques méthodes différentes (non programmatiques).
Utilisation d'une forme dessinable
Enregistrez les éléments suivants en tant que fichier XML dans votre dossier dessinable (par exemple, my_border.xml):
Ensuite, définissez-le simplement comme arrière-plan de votre TextView:
Plus d'aide:
Utilisation d'un patch 9
Un patch 9 est une image de fond extensible. Si vous créez une image avec une bordure, cela donnera à votre TextView une bordure. Tout ce que vous avez à faire est de créer l'image, puis de la placer en arrière-plan dans votre TextView.
Voici quelques liens qui montreront comment créer une image à 9 patchs:
Et si je veux juste la bordure supérieure?
Utilisation d'une liste de couches
Vous pouvez utiliser une liste de calques pour empiler deux rectangles l'un sur l'autre. En rendant le deuxième rectangle un peu plus petit que le premier rectangle, vous pouvez créer un effet de bordure. Le premier rectangle (inférieur) est la couleur de la bordure et le deuxième rectangle est la couleur d'arrière-plan.
Le réglage
android:top="2dp"
décale le haut (le rend plus petit) de 2dp. Cela permet au premier rectangle (inférieur) de transparaître, donnant un effet de bordure. Vous pouvez appliquer cela à l'arrière-plan TextView de la même manière que leshape
dessinable a été effectué ci-dessus.Voici quelques liens supplémentaires sur les listes de couches:
Utilisation d'un patch 9
Vous pouvez simplement créer une image à 9 patchs avec une seule bordure. Tout le reste est le même que celui discuté ci-dessus.
Utilisation d'une vue
C'est une sorte d'astuce, mais cela fonctionne bien si vous devez ajouter un séparateur entre deux vues ou une bordure à une seule TextView.
Voici quelques liens supplémentaires:
la source
border: 1px solid #999;
n'est pas censé être ce complexe.Le moyen le plus simple consiste à ajouter une vue pour votre TextView. Exemple pour la ligne de bordure inférieure:
Pour les autres bordures de direction, veuillez ajuster l'emplacement de la vue de séparation.
la source
J'ai résolu ce problème en étendant la vue de texte et en dessinant une bordure manuellement. J'ai même ajouté pour que vous puissiez sélectionner si une bordure est en pointillés ou en pointillés.
Et la classe frontière:
J'espère que cela aide quelqu'un :)
la source
Je cherchais juste une réponse similaire - cela peut être fait avec un coup et le remplacement suivant:
la source
Vous pouvez définir la bordure par deux méthodes. L'un est par tirage et le second est programmatique.
Utilisation de Drawable
Programmatique
la source
La solution la plus simple que j'ai trouvée (et qui fonctionne réellement):
la source
J'ai trouvé un meilleur moyen de mettre une bordure autour d'un TextView.
Utilisez une image à neuf patchs pour l'arrière-plan. C'est assez simple, le SDK est livré avec un outil pour créer l'image à 9 patchs, et il n'implique absolument aucun codage.
Le lien est http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch .
la source
Vous pouvez ajouter quelque chose comme ça dans votre code:
la source
Vérifiez le lien ci-dessous pour faire des coins arrondis http://androidcookbook.com/Recipe.seam?recipeId=2318
Le dossier dessinable, sous res, dans un projet Android n'est pas limité aux bitmaps (fichiers PNG ou JPG), mais il peut également contenir des formes définies dans des fichiers XML.
Ces formes peuvent ensuite être réutilisées dans le projet. Une forme peut être utilisée pour placer une bordure autour d'une disposition. Cet exemple montre une bordure rectangulaire avec des coins incurvés. Un nouveau fichier appelé customborder.xml est créé dans le dossier dessinable (dans Eclipse, utilisez le menu Fichier et sélectionnez Nouveau puis Fichier, avec le dossier dessinable sélectionné, tapez le nom du fichier et cliquez sur Terminer).
Le XML définissant la forme de la bordure est entré:
L'attribut
android:shape
est défini sur rectangle (les fichiers de forme prennent également en charge ovale, ligne et anneau). Le rectangle est la valeur par défaut, donc cet attribut peut être omis s'il s'agit d'un rectangle en cours de définition. Voir la documentation Android sur les formes à http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape pour des informations détaillées sur un fichier de forme.Les coins des éléments définissent les coins du rectangle à arrondir. Il est possible de définir un rayon différent sur chaque coin (voir la référence Android).
Les attributs de remplissage sont utilisés pour déplacer le contenu de la vue à laquelle la forme est appliquée, pour éviter que le contenu ne chevauche la bordure.
Ici, la couleur de la bordure est définie sur un gris clair (valeur RVB hexadécimale).
Les formes prennent également en charge les dégradés, mais cela n'est pas utilisé ici. Encore une fois, consultez les ressources Android pour voir comment un dégradé est défini. La forme est appliquée au laypout en utilisant
android:background="@drawable/customborder"
.Dans la mise en page, d'autres vues peuvent être ajoutées normalement. Dans cet exemple, une seule TextView a été ajoutée et le texte est blanc (FFFFFF RVB hexadécimal). L'arrière-plan est bleu, plus une certaine transparence pour réduire la luminosité (valeur alpha RGB hexadécimale A00000FF). Enfin, la disposition est décalée du bord de l'écran en la plaçant dans une autre disposition avec une petite quantité de rembourrage. Le fichier de mise en page complet est donc:
la source
J'ai un moyen de le faire très simplement et j'aimerais le partager.
Lorsque je veux mettre des TextViews au carré, je les mets simplement dans un LinearLayout. J'ai défini la couleur d'arrière-plan de mon LinearLayout et j'ajoute une marge à mon TextView. Le résultat est exactement comme si vous cadriez le TextView.
la source
Changer la réponse de Konstantin Burov car cela ne fonctionne pas dans mon cas:
compileSdkVersion 26 (Android 8.0), minSdkVersion 21 (Android 5.0), targetSdkVersion 26, implémentation 'com.android.support:appcompat-v7:26.1.0', gradle: 4.1
la source
Vous pouvez créer un arrière-plan personnalisé pour votre affichage de texte. Étapes 1. Accédez à votre projet. 2. Allez dans les ressources et faites un clic droit pour dessiner. 3. Cliquez sur Nouveau -> Fichier de ressources dessinable 4. Donnez un nom à votre fichier 5. Collez le code suivant dans le fichier
Pour afficher votre texte là où vous souhaitez l'utiliser comme arrière-plan,
android: background = "@ drawable / your_fileName"
la source
Voici ma classe d'aide «simple» qui renvoie une ImageView avec la bordure. Déposez simplement ceci dans votre dossier utils, et appelez-le comme ceci:
Voici le code.
la source
selectionBorder
?Cela peut vous aider.
la source
Créez une vue de bordure avec la couleur d'arrière-plan comme couleur de la bordure et la taille de votre vue de texte. définissez le remplissage de la vue de bordure comme la largeur de la bordure. Définissez la couleur d'arrière-plan de la vue texte comme la couleur souhaitée pour la vue texte. Ajoutez maintenant votre vue texte à l'intérieur de la vue de bordure.
la source
Essaye ça:
la source
Il existe de nombreuses façons d'ajouter une bordure à un textView. La plus simple consiste à créer un dessin personnalisé et à le définir comme
android:background="@drawable/textview_bg"
pour votre TextView.Le textview_bg.xml ira sous Drawables et peut être quelque chose comme ça. Vous pouvez avoir un
solid
ou ungradient
arrière - plan (ou rien si non requis),corners
pour ajouter un rayon de coin etstroke
pour ajouter une bordure.textview_bg.xml
la source
ce code assez vous pouvez placer où vous voulez
la source
setBackground sur votre textview xml,
ajoutez le fichier arrondi_texteview.xml dans votre répertoire dessinable.
définir un fichier dessinable en arrière-plan textView.
la source
En fait, c'est très simple. Si vous voulez un simple rectangle noir derrière le Textview, ajoutez simplement
android:background="@android:color/black"
dans les balises TextView. Comme ça:la source