Comment faire de mise en page avec des coins arrondis..?
Comment puis-je faire une mise en page avec des coins arrondis? Je veux appliquer des coins arrondis pour mes LinearLayout
.
- créer une forme dessinés avec coin puis définir comme fond.. où est le problème?
- vous avez juste besoin de mettre en arrondi image comme arrière-plan de l'agencement d'autre à faire de la forme comme dit dans le premier commentaire
- vous avez juste besoin de la recherche sur le SI... vous trouverez beaucoup de asnwers ..
- les coins sont obscurcis pour moi
Vous devez vous connecter pour publier un commentaire.
1: Définir layout_bg.xml dans un drawable:
2: Ajouter
layout_bg.xml
comme arrière-plan à votre dispositionElement shape doesn't have the required attribute android:layout_height
?Element shape doesn't have the required attribute android:layout_height
La raison pour laquelle l'erreur a été montré, car layout_bg.xml n'était pas à l'intérieur du dossier drawable.drawable
dossier!Pour API 21+, Utilisez le Clip Vues
Rondeurs écrêtage a été ajouté à la
View
classe de l'API de 21. Voir ce formation doc ou ce référence pour plus d'info.Cette fonction rend coins arrondis très facile à mettre en œuvre. Il fonctionne sur n'importe quel affichage ou de la disposition et prend en charge adéquate de l'écrêtage.
Voici Quoi Faire:
android:background="@drawable/round_outline"
android:clipToOutline="true"
Malheureusement, il semble y avoir un bug et cet attribut XML n'est actuellement pas reconnu. Heureusement, nous pouvons définir le découpage en Java:
View.setClipToOutline(true)
À Quoi Il Ressemble:
Note Spéciale Sur Les ImageViews
setClipToOutline()
ne fonctionne que lorsque la Vue de l'arrière-plan est une forme drawable. Si cette toile de fond la forme existe, Vue traite le fond du contour des frontières pour le découpage et l'ombrage de ces fins.Cela signifie que si vous voulez arrondir les coins sur un ImageView avec
setClipToOutline()
, votre image doit venir deandroid:src
au lieu deandroid:background
(depuis l'arrière-plan est utilisé pour la forme arrondie). Si vous DEVEZ utiliser un arrière-plan pour définir votre image à la place de la src, vous pouvez utiliser cette vues imbriquées solution de contournement:src=@drawable...
au lieu debackground=@drawable
? Vous pouvez soit le faire ou le nid de votre ImageView à l'intérieur d'un conteneur de vue qui détient le contour de la forme.Voici une copie d'un fichier XML pour créer un drawable avec un fond blanc, contour noir, et des coins arrondis:
de l'enregistrer comme un fichier xml dans le drawable répertoire,
L'utiliser comme si vous utilisiez une drawable de fond(ou l'icône de fichier de ressources) à l'aide de son nom de la ressource (R. drawable.your_xml_name)
<corners android:radius="7dp" />
🙂J'ai fait de cette façon:
Vérifier Capture D'Écran:
Créer drawable fichier nommé avec
custom_rectangle.xml
dans drawable dossier:Maintenant appliquer Rectangle de fond sur Vue:
Fait
Utilisation CardView dans android v7 bibliothèque de prise en charge.
Si c'est un peu lourd, il résout tout problème, et assez facile.
Pas comme l'ensemble drawable arrière-plan de la méthode, il pourrait clip des sous-vues avec succès.
Je pense que la meilleure façon de le faire est de fusionner les 2 choses:
faire une image de la mise en page, comme le montre ici.
faire un arrondi drawable de l'image, comme le montre ici
définir le drawable sur une imageView.
Cela permettra de gérer les cas que d'autres solutions ont échoué à résoudre, comme le fait d'avoir du contenu qui a coins.
Je pense que c'est aussi un peu plus de GPU-friendly, car il montre une seule couche au lieu de 2 .
La seule meilleure façon est de faire une totalement personnalisé en vue, mais c'est beaucoup de code et peut prendre beaucoup de temps. Je pense que ce que je suggère ici, c'est le meilleur des deux mondes.
Voici un extrait de la façon dont il peut être fait:
RoundedCornersDrawable.java
CustomView.java
EDIT: trouvé une belle alternative, basée sur "RoundKornersLayouts" bibliothèque. Avoir une classe qui sera utilisée pour toutes les classes de layout vous souhaitez prolonger, pour être arrondi:
Puis, dans chacune de vos mise en page personnalisée classes, ajoutez un code similaire à celui-ci:
Si vous souhaitez soutenir les attributs, l'utiliser comme écrit sur la bibliothèque:
Une autre alternative, qui pourrait être plus facile pour la plupart des utilisations: utiliser MaterialCardView . Il permet la personnalisation des coins arrondis, couleur de trait et la largeur et la hauteur.
Exemple:
Et le résultat:
Ne remarque qu'il y a une légère artefacts question sur les bords de la course (les feuilles de certains pixels du contenu), si vous l'utilisez. Vous pouvez remarquerez, si vous effectuez un zoom avant. J'ai signalé à propos de ce problème ici.
LinearLayout
?Essayez ceci...
1.créer drawable xml(custom_layout.xml):
2.ajoutez votre fond de la vue
Une meilleure façon de le faire serait:
background_activity.xml
Cela fonctionne au-dessous de l'API 21 aussi, et vous donner quelque chose comme ceci:
Si vous êtes prêt à faire un peu plus d'effort, plus de contrôle, puis utilisez
android.support.v7.widget.CardView
avec sescardCornerRadius
attribut (et de définirelevation
attribut0dp
de se débarrasser de tout document d'accompagnement de l'ombre portée avec les cardView). Aussi, cela fonctionne à partir de l'API de niveau aussi bas que 15.Si vous souhaitez faire votre mise en page arrondis, il est préférable d'utiliser le CardView, il a fourni de nombreuses fonctionnalités pour rendre le design magnifique.
Avec cette card_view:cardCornerRadius="5dp", vous pouvez modifier le rayon.
Utilisation CardView pour obtenir des bords arrondis pour toutes les layouts.
Utilisation card_view:cardCornerRadius="5dp" pour cardview pour les arrondir disposition bords.
Fonction pour définir le rayon de l'angle par programme
À l'aide de
@David, il suffit de mettre le rembourrage de même valeur que les accidents vasculaires cérébraux, de sorte que la frontière peut être visible, regardeless la taille de l'image
La meilleure et la méthode la plus simple serait de faire usage de card_background drawable dans votre mise en page. Cela résulte également de Google de conception du matériel des lignes directrices. Il suffit d'inclure ce dans vous LinearLayout:
Ajouter à votre drawable le répertoire et le nom card_background.xml:
J'ai pris @gauravsapiens réponse avec mes commentaires à l'intérieur pour vous donner une crainte raisonnable de ce que les paramètres de l'effet.
Si vous êtes simplement à la recherche pour créer une forme qui arrondit les angles, de retirer le rembourrage et la course de le faire. Si vous supprimez le solide ainsi vous aurez, en effet, ont créé des coins arrondis sur un arrière-plan transparent.
Pour le plaisir de paresseux, j'ai créé une forme au-dessous, qui est juste un fond blanc avec des coins arrondis - profitez-en! 🙂
Créer votre xml dans drawable,
layout_background.xml
puis, ajoutez ceci dans votre
layout.xml