Voglio creare un layout con un bordo arrotondato. Come posso applicare un raggio di una dimensione particolare in un LinearLayout?
Voglio creare un layout con un bordo arrotondato. Come posso applicare un raggio di una dimensione particolare in un LinearLayout?
Risposte:
È possibile creare un file XML nella cartella drawable. Chiamalo, ad esempio,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>
Il <corner>tag è per la tua domanda specifica.
Apporta le modifiche necessarie.
E nel tuo 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>
Questo è quello che faccio di solito nelle mie app. Spero che questo ti aiuti....
<shape>esempio, è già impostato nel layout XML qui:android:background="@drawable/shape"
Dovresti usare uno Shape Drawable come sfondo del layout e impostare il suo cornerRadius. Controlla questo blog per un tutorial dettagliato
disposizione
<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>
Cartella disegnabile 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>
prova questo, in modo che a livello di programmazione per impostare uno sfondo con raggio su LinearLayout o qualsiasi vista.
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());