Comment puis-je faire un pointillé/pointillé dans Android?
Je suis en train de faire une ligne en pointillés. J'utilise en ce moment pour un solide en ligne:
LinearLayout divider = new LinearLayout( this );
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, 2 );
divider.setLayoutParams( params );
divider.setBackgroundColor( getResources().getColor( R.color.grey ) );
J'ai besoin de quelque chose comme cela, mais en pointillés à la place de solides. J'aimerais éviter de faire des centaines de mises en alternance entre un aménagement très transparent et solide mise en page.
Vous devez vous connecter pour publier un commentaire.
Sans code java:
drawable/dotted.xml:
view.xml:
canvas.drawLine()
. Comme alternative à désactiver l'accélération matérielle, vous pouvez utilisercanvas.drawPath
à la place.canvas.drawPath()
, qui ne fonctionne que de manière fiable si tous les points sont sur l'écran en raison de bug connu datant de 2012.android:layerType="software"
de telles choses comme les Tiroirs commence en retard de développementdp
au lieu depx
.android:layerType="software"
doit être défini sur l'ImageView.android:layerType="software"
layout_height
de laImageView
doit être supérieure à lawidth
de laStroke
, si ces valeurs d'égalité, le tableau de bord de la ligne disparaît.le chemin de l'effet est réglé sur la peinture de l'objet
vous pouvez créer toutes sortes de parsemée de motifs en fournissant plus de nombres dans l'int tableau [], il indique les ratios du tableau de bord et de l'écart. C'est simple, également en pointillés, ligne.
DashPathEffect
a fait le tour!Cela va vous aider.
La création de la ligne pointillée à l'aide de XML.
Créer xml dans le dossier drawable, et donnent à l'arrière-plan de l'élément pour lequel vous souhaitez définir une bordure pointillée.
----> Création de XML arrière-plan "dashed_border"
-----> Ajoutant que l'arrière-plan de l'élément de
Créer xml (view_line_dotted.xml):
Définir comme arrière-plan de votre point de vue:
Ce que j'ai fait quand j'ai voulu dessiner une ligne pointillée est la définition d'un drawable dash_line.xml:
Puis dans la mise en page il suffit de définir une vue avec un arrière-plan en tant que dash_line. Note pour l'inclure android:layerType="logiciel", sinon ça ne marchera pas.
android:layerType="software"
est la chose que je cherchais! Cheers!J'ai personnalisé un dashline qui support horizontal&verical dash ligne . le code ci-dessous:
Par l'utilisation de cette classe, vous pouvez appliquer "en pointillés et de souligner" l'effet de plusieurs lignes de texte. pour utiliser DashPathEffect, vous devez éteindre hardwareAccelerated de votre TextView(si DashPathEffect méthode a un problème avec texte long). vous pouvez trouver mon exemple de projet ici: https://github.com/jintoga/Dashed-Underlined-TextView/blob/master/Untitled.png.
Résultat:
J'ai utilisé le ci-dessous comme une base pour la mise en page:
android:shape="rectangle"
au lieu de la ligne?Si vous êtes à la recherche pour une ligne verticale utilisez cette drawable.
Le négatif en haut en bas et de gauche, les valeurs de supprimer les indésirables côtés de la forme en laissant une seule ligne en pointillés.
L'utiliser dans une vue comme si.
Utiliser un ShapeDrawable au lieu d'un LinearLayout et de jouer avec dashWidth et dashGap
http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape
La seule chose qui a fonctionné pour moi et je pense que c'est le moyen le plus simple est d'utiliser un Chemin d'accès avec une peinture de l'objet comme ceci:
Puis onDraw(): (appel important de réinitialisation si vous changez ces points entre ondraw appels, provoquer Chemin d'enregistrer tous les mouvements)
Meilleure Solution pour Parsemée de travail de référence parfait
J'ai créé en pointillés ligne pointillée pour EditText. Ici vous allez.
Créez votre nouveau xml. e.g dashed_border.xml Code ici:
Et d'utiliser votre nouveau fichier xml dans votre EditText par exemple:
Cheers! 🙂
Je ne sais pas pourquoi, mais l'voté réponses ne fonctionnent pas pour moi. J'écris de cette façon et les bonnes œuvres.
Définir un affichage personnalisé:
Alors vous pouvez l'utiliser dans votre xml:
J'ai créé une bibliothèque avec une vue personnalisée pour résoudre ce problème, et il devrait être très simple à utiliser. Voir https://github.com/Comcast/DahDit pour plus d'. Vous pouvez ajouter des lignes en pointillés comme ceci: