Ich möchte ein Layout mit einem abgerundeten Rand erstellen. Wie kann ich einen Radius einer bestimmten Größe in a anwenden LinearLayout
?
Ich möchte ein Layout mit einem abgerundeten Rand erstellen. Wie kann ich einen Radius einer bestimmten Größe in a anwenden LinearLayout
?
Antworten:
Sie können eine XML-Datei im Zeichenordner erstellen. Nennen Sie es zum Beispiel:shape.xml
In 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>
Das <corner>
Tag ist für Ihre spezifische Frage.
Nehmen Sie die erforderlichen Änderungen vor.
Und in deinem 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>
Das mache ich normalerweise in meinen Apps. Hoffe das hilft....
<shape>
Beispiel meinen , ist es hier bereits im Layout-XML festgelegt:android:background="@drawable/shape"
Sie würden ein Shape Drawable als Hintergrund für das Layout verwenden und dessen Eckradius festlegen. In diesem Blog finden Sie ein detailliertes Tutorial
Layout
<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>
Zeichnungsordner round_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>
Versuchen Sie dies, damit Programmatisch einen Hintergrund mit Radius auf LinearLayout oder eine beliebige Ansicht setzt.
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());