Je veux faire une mise en page avec une bordure arrondie. Comment puis-je appliquer un rayon d'une taille particulière dans une LinearLayout
?
Vous pouvez créer un fichier XML dans le dossier pouvant être dessiné. Appelez-le, par exemple, shape.xml
Dans shape.xml
:
<shape
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle" >
<solid
Android:color="#888888" >
</solid>
<stroke
Android:width="2dp"
Android:color="#C4CDE0" >
</stroke>
<padding
Android:left="5dp"
Android:top="5dp"
Android:right="5dp"
Android:bottom="5dp" >
</padding>
<corners
Android:radius="11dp" >
</corners>
</shape>
La balise <corner>
est pour votre question spécifique.
Apportez les modifications nécessaires.
Et dans votre whatever_layout_name.xml
:
<LinearLayout
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical"
Android:layout_margin="5dp"
Android:background="@drawable/shape" >
</LinearLayout>
C'est ce que je fais habituellement dans mes applications. J'espère que cela t'aides....
Vous devez utiliser un Shape Drawable comme arrière-plan de la mise en page et définir son cornerRadius . Voir ce blog pour un tutoriel détaillé
Disposition
<LinearLayout
Android:id="@+id/linearLayout"
Android:layout_width="300dp"
Android:gravity="center"
Android:layout_height="300dp"
Android:layout_centerInParent="true"
Android:background="@drawable/rounded_Edge">
</LinearLayout>
Dossier dessinable rounded_Edge.xml
<shape
xmlns:Android="http://schemas.Android.com/apk/res/Android">
<solid
Android:color="@Android:color/darker_gray">
</solid>
<stroke
Android:width="0dp"
Android:color="#424242">
</stroke>
<corners
Android:topLeftRadius="100dip"
Android:topRightRadius="100dip"
Android:bottomLeftRadius="100dip"
Android:bottomRightRadius="100dip">
</corners>
</shape>
essayez ceci pour que Programmatically définisse un arrière-plan avec le rayon sur LinearLayout ou n’importe quelle vue.
private Drawable getDrawableWithRadius() {
GradientDrawable gradientDrawable = new GradientDrawable();
gradientDrawable.setCornerRadii(new float[]{20, 20, 20, 20, 20, 20, 20, 20});
gradientDrawable.setColor(Color.RED);
return gradientDrawable;
}
LinearLayout layout = new LinearLayout(this);
layout.setBackground(getDrawableWithRadius());