web-dev-qa-db-fra.com

Comment appliquer le rayon de coin à LinearLayout

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?

97
Aamirkhan

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....

255
Siddharth Lele

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é

11
Mirko Lindner

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>
3
Sudhir singh

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());
0
Ramesh kumar