Bagaimana Menerapkan Radius Sudut ke LinearLayout

Jawaban:

278

Anda bisa membuat file XML di folder drawable. Sebut saja, misalnya,shape.xml

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

The <corner>tag untuk pertanyaan spesifik Anda.

Lakukan perubahan sesuai kebutuhan.

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

Ini yang biasanya saya lakukan di aplikasi saya. Semoga ini membantu....

Siddharth Lele
sumber
Cara mengatur gambar latar belakang dalam xml ini
vignesh
1
@vignesh: Drawable mana dan setel di mana? Jika yang Anda maksud adalah <shape>contoh, itu sudah disetel dalam XML tata letak di sini:android:background="@drawable/shape"
Siddharth Lele
3
bagaimana jika tata letak linier ini sudah memiliki gambar latar belakang dan saya ingin memiliki radius sudut? dalam kode Anda, saya tidak akan bisa menyetel gambar latar belakang, karena properti latar belakang linearLayout disetel dengan shape.xml
newton_guima
@MrAppleBR: Saya tidak akan bisa menyetel gambar latar belakang : Benar. Namun dalam konteks pertanyaan, OP memiliki use case yang valid. Dalam kasus penggunaan yang Anda sebutkan, bukan ini yang seharusnya Anda tuju.
Siddharth Lele
@ SiddharthLele apa yang harus saya lakukan? dapatkah Anda menjelaskan dengan sedikit sumber atau mungkin tautan? Terima kasih!
newton_guima
11

Anda akan menggunakan Shape Drawable sebagai latar belakang tata letak dan mengatur Radius sudutnya. Lihat blog ini untuk tutorial mendetail

Mirko Lindner
sumber
8

Tata Letak

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

Folder drawable rounded_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>
Sudhir singh
sumber
2

coba ini, agar secara terprogram menyetel latar belakang dengan radius ke LinearLayout atau Tampilan apa pun.

 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());
Ramesh kumar
sumber