Ich muss ein abgerundetes Rechteck in der Android-Benutzeroberfläche zeichnen. Das gleiche abgerundete Rechteck für TextView
und EditText
wäre auch hilfreich.
Ich muss ein abgerundetes Rechteck in der Android-Benutzeroberfläche zeichnen. Das gleiche abgerundete Rechteck für TextView
und EditText
wäre auch hilfreich.
Antworten:
Gehen Sie in Ihrem Layout-XML wie folgt vor:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/holo_red_dark" />
<corners android:radius="32dp" />
</shape>
Durch Ändern von android:radius
können Sie den "Radius" der Ecken ändern.
<solid>
wird verwendet, um die Farbe des Zeichens zu definieren.
Sie können verwenden ersetzen android:radius
mit android:bottomLeftRadius
, android:bottomRightRadius
, android:topLeftRadius
und android:topRightRadius
für jeden Eckenradius zu definieren.
Ich denke, das ist genau das, was du brauchst.
Hier zeichnbare (XML) Datei, die ein abgerundetes Rechteck erstellt. 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 (Dies ist die Schlüsselrolle beim Erstellen eines abgerundeten Rechtecks). Sie können also jede Ansicht wie TextView, EditText ... in diesem LinearLayout platzieren, um den Hintergrund als rundes Rechteck für alle anzuzeigen.
android:background="@drawable/round_rect_shape"
in meiner styles.xml verwenden können, aber andere Hintergrundfarben verwenden, indem ich eine andere Eigenschaft festlege. Gibt es eine andere Option, als für jede Farbe ein identisches Zeichenelement zu erstellen?
In monodroid
können Sie dies für abgerundete Rechtecke tun und diese dann als übergeordnete Klasse editbox
beibehalten. Weitere 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);
}
}
}
<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 Sie diese Form verwenden möchten, 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".
Verwenden Sie CardView für rundes Rechteck. CardView bietet mehr Funktionen wie cardCornerRadius, cardBackgroundColor, cardElevation und viele mehr. Mit CardView ist die Benutzeroberfläche besser geeignet als mit benutzerdefinierten runden Rechtecken.
Sie können einfach einen neuen XML-Hintergrund im Ordner drawables definieren
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="enter_your_desired_color_here" />
<corners android:radius="enter_your_desired_radius_the_corners" />
</shape>
Fügen Sie es anschließend einfach in Ihre Textansicht oder Ihren EditText ein, indem Sie es im Hintergrund definieren.
<TextView
android:id="@+id/textView"
android:layout_width="0dp"
android:layout_height="80dp"
android:background="YOUR_FILE_HERE"
Android:layout_weight="1"
android:gravity="center"
android:text="TEXT_HERE"
android:textSize="40sp" />
Klicken Sie mit der rechten Maustaste auf die Zeichnungsdatei und erstellen Sie eine neue Layout-XML-Datei im Namen von beispielsweise 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 können Sie es verwenden.
<Button
android:background="@drawable/button_background"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/white" />
<corners android:radius="4dp" />
</shape>