Comment dessiner rectangle arrondi dans Android UI?

je dois dessiner un rectangle arrondi dans L'interface utilisateur Android. Il serait également utile d'avoir le même rectangle arrondi pour TextView et EditText .

103
demandé sur Aditya Vyas-Lakhan 2011-04-11 11:58:39

5 réponses

dans votre mise en page xml faire ce qui suit:

   <shape xmlns:android="http://schemas.android.com/apk/res/android">
         <gradient
            android:endColor="@color/something"
            android:centerColor="@color/something_else"
            android:startColor="@color/something_else_still"
            android:angle="270" />
        <corners
            android:radius="3dp" />
        <padding
            android:left="10dp"
            android:top="10dp"
            android:right="10dp"
            android:bottom="10dp" />
    </shape>

en changeant l'android:rayon Vous pouvez changer la quantité de" arrondi " des coins.

166
répondu Andreass 2013-03-24 19:26:13

je pense, c'est exactement nécessaire.

fichier dessinable(xml) qui crée un rectangle arrondi. round_rect_shape.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <solid android:color="#ffffff" />

    <corners
        android:bottomLeftRadius="8dp"
        android:bottomRightRadius="8dp"
        android:topLeftRadius="8dp"
        android:topRightRadius="8dp" />

</shape>

ici fichier de mise en page: my_layout.xml

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/round_rect_shape"
    android:orientation="vertical"
    android:padding="5dp" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Something text"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#ff0000" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <requestFocus />
    </EditText>
</LinearLayout>

- > dans le code ci-dessus, LinearLayout ayant l'arrière-plan(qui est le rôle clé à placer pour créer rectangle arrondi). Ainsi, vous pouvez placer n'importe quelle vue comme TextView, EditText... dans que LinearLayout pour voir le fond comme rectangle rond pour tous.

101
répondu Noundla 2017-10-14 12:42:08

dans monodroid , vous pouvez faire comme ceci pour le rectangle arrondi, et puis en gardant ceci comme une classe mère, editbox et d'autres caractéristiques de mise en page peuvent être ajoutées.

 class CustomeView : TextView
    {
       public CustomeView (Context context, IAttributeSet ) : base (context, attrs)  
        {  
        }
       public CustomeView(Context context, IAttributeSet attrs, int defStyle) : base(context, attrs, defStyle)  
        {  
        }
       protected override void OnDraw(Android.Graphics.Canvas canvas)
       {
           base.OnDraw(canvas);
           Paint p = new Paint();
           p.Color = Color.White;
           canvas.DrawColor(Color.DarkOrange);

           Rect rect = new Rect(0,0,3,3);

           RectF rectF = new RectF(rect);


           canvas.DrawRoundRect( rectF, 1,1, p);



       }  
    }
}
17
répondu learn_andrd 2016-07-14 10:36:58
<shape xmlns:android="http://schemas.android.com/apk/res/android"
  android:padding="10dp"
  android:shape="rectangle">
    <solid android:color="@color/colorAccent" /> 
    <corners
      android:bottomLeftRadius="500dp"
      android:bottomRightRadius="500dp"
      android:topLeftRadius="500dp"
      android:topRightRadius="500dp" />
</shape>

maintenant, dans quel élément vous voulez utiliser cette forme juste ajouter: android:background="@drawable/custom_round_ui_shape"

créer un nouveau XML dans drawable nommé "custom_round_ui_shape"

3
répondu Uttam Meerwal 2017-08-30 07:49:34

si vous voulez utiliser le rectangle arrondi comme arrière-plan pour TextView et EditText, vous devez utiliser l'arrière-plan personnalisé. Vous devez utiliser le composant shape pour cela pour plus d'information lire cette question en utilisant shape drawable comme fond d'écran xml

1
répondu Mojo Risin 2017-05-23 11:55:07