142 votes

Comment appliquer un rayon d'angle à LinearLayout

Je veux faire une mise en page avec une bordure arrondie. Comment appliquer un rayon d'une taille particulière dans un LinearLayout ?

327voto

Siddharth Lele Points 12784

Vous pouvez créer un fichier XML dans le dossier pouvant être dessiné. Appelez-le, par exemple, shape.xml

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

13voto

Sudhir singh Points 359

Mise en page

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

11voto

Mirko Lindner Points 581

Vous utiliseriez un Shape Drawable comme arrière-plan de la mise en page et définiriez son cornerRadius. Consultez ce blog pour un tutoriel détaillé

9voto

Ramesh kumar Points 48

essayez ceci, pour définir par programme un arrière-plan avec un 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());

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X