web-dev-qa-db-ger.com

Wie zeichnet man ein abgerundetes Rechteck in Android UI?

Ich muss ein abgerundetes Rechteck in der Benutzeroberfläche von Android=) zeichnen. Es wäre auch hilfreich, dasselbe abgerundete Rechteck für TextView und EditText zu haben.

122
M.A.Murali

Gehen Sie in Ihrem Layout-XML wie folgt vor:

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

Durch Ändern des Radius von Android: können Sie den Grad der "Abrundung" der Ecken ändern.

182
Andreass

Ich denke, das ist genau das, was du brauchst.

Hier zeichnende (xml) Datei, die ein abgerundetes Rechteck erzeugt. 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>

hier Layoutdatei: 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>

-> Im obigen Code hat LinearLayout den Hintergrund (das ist die Schlüsselrolle, die beim Erstellen eines abgerundeten Rechtecks ​​zu spielen ist). Sie können also jede Ansicht wie TextView, EditText ... in dieses LinearLayout einfügen, um den Hintergrund als rundes Rechteck für alle anzuzeigen.

117
Noundla Sandeep

In monodroid können Sie dies für abgerundete Rechtecke tun und diese dann als übergeordnete Klasse beibehalten. editbox und andere Layoutfunktionen können hinzugefügt werden.

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



       }  
    }
}
19
learn_andrd
<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>

Nun, in welchem ​​Element möchten Sie diese Form verwenden, fügen Sie einfach hinzu: Android:background="@drawable/custom_round_ui_shape"

Erstellen Sie eine neue XML-Datei mit dem Namen "custom_round_ui_shape".

4
Uttam Meerwal

Wenn Sie das abgerundete Rechteck als Hintergrund für TextView und EditText verwenden möchten, sollten Sie einen benutzerdefinierten Hintergrund verwenden. Sie müssen die Formkomponente dafür verwenden, um weitere Informationen zu erhalten. Lesen Sie diese Frage Verwenden der als Hintergrund xml darstellbaren Form

1
Mojo Risin

Klicken Sie mit der rechten Maustaste auf die Zeichenfläche und erstellen Sie eine neue Layout-XML-Datei mit dem Namen "button_background.xml". Kopieren Sie dann den folgenden Code und fügen Sie ihn ein. Sie können es nach Bedarf ändern.

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
<corners
Android:radius="14dp" />
<solid Android:color="@color/colorButton" />
<padding
Android:bottom="0dp"
Android:left="0dp"
Android:right="0dp"
Android:top="0dp" />
<size
Android:width="120dp"
Android:height="40dp" />
</shape>

Jetzt kannst du es benutzen.

<Button
Android:background="@drawable/button_background"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"/>
0
M Karimi