Pojok bulat untuk tampilan teks di android


171

Saya memiliki tampilan teks dan ingin sudutnya berbentuk bulat. Saya sudah tahu itu bisa dilakukan menggunakan android:background="@drawable/somefile". Dalam kasus saya, tag ini sudah disertakan sehingga tidak dapat digunakan lagi. misalnya android:background="@drawable/mydialogbox"sudah ada untuk membuat gambar di latar belakang

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_gravity="top"
    android:background="@drawable/mydialogbox"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/textview_name"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    </LinearLayout>

</RelativeLayout>

jadi ketika saya mau textview(textview_name)juga dengan sudut bulat, bagaimana ini bisa dicapai.


4
jika Anda sudah mendapatkan jawaban Anda daripada menerima jawaban sehingga orang lain bisa mendapatkan bantuan dari kontribusi Anda
MilapTank

Jawaban:


438

1) Buat rounded_corner.xmldi drawablefolder dan tambahkan konten berikut,

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >         
   <stroke
          android:width="1dp"
          android:color="@color/common_border_color" />

   <solid android:color="#ffffff" />

   <padding
           android:left="1dp"
           android:right="1dp"
           android:bottom="1dp"
           android:top="1dp" />

   <corners android:radius="5dp" />
</shape>

2) Setel drawable ini di TextViewproperti background. Sebagai contoh:

android:background="@drawable/rounded_corner"

Semoga ini bermanfaat buat kamu.


16
Jawabannya benar hanya bahwa pria yang diposting tidak menjelaskannya secara detail. Anda perlu membuat xml [mis. rounded_view.xml] di folder yang dapat digambar dengan kode di atas. Dan dalam tata letak Anda di sekitar tampilan teks Anda, letakkan ini sebagai parameter android: background = "@ drawable / rounded_view"
Sharjeel Ahmed

4
android: background = "@ drawable / rounded_corner" jangan gunakan ekstensi di sini!
Boris Gafurov

4
Tambahkan android:shape="rectangle"jika itu tidak berhasil untuk Anda
kristyna

Dan
bangun

18

Di samping radius, ada beberapa properti untuk sudut bulat seperti topRightRadius, topLeftRadius, bottomRightRadius,bottomLeftRadius

Contoh TextViewdengan latar belakang abu-abu redperbatasanwith corner and

bg_rounded.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke
        android:width="10dp"
        android:color="#f00" />

    <solid android:color="#aaa" />

    <corners
        android:radius="5dp"
        android:topRightRadius="100dp" />
</shape>

TextView

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/bg_rounded"
    android:text="Text"
    android:padding="20dp"
    android:layout_margin="10dp"
    />

Hasil

masukkan deskripsi gambar di sini


16

Karena tampilan tingkat atas Anda sudah memiliki set properti android: latar belakang, Anda dapat menggunakan <layer-list>( tautan ) untuk membuat drawable XML baru yang menggabungkan latar belakang lama Anda dan latar belakang sudut bulat baru Anda.

Setiap <item>elemen dalam daftar diambil dari yang berikutnya, sehingga item terakhir dalam daftar adalah yang berakhir di atas.

<?xml version="1.0" encoding="utf-8"?>
<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <bitmap android:src="@drawable/mydialogbox" />
    </item>
    <item>
        <shape>
            <stroke
                android:width="1dp"
                android:color="@color/common_border_color" />

            <solid android:color="#ffffff" />

            <padding
                    android:left="1dp"
                    android:right="1dp"
                    android:top="1dp" />

            <corners android:radius="5dp" />
        </shape>
    </item>
</layer-list>

6

buat file xml gradient.xml di bawah folder drawable

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle"  >
            <corners android:radius="50dip" />
            <stroke android:width="1dip" android:color="#667162" />
            <gradient android:angle="-90" android:startColor="#ffffff" android:endColor="#ffffff" />
        </shape>
    </item>
</selector>

kemudian tambahkan ini ke TextView Anda

android:background="@drawable/gradient"

6
  1. Klik kanan pada Drawable Folder dan Buat File baru
  2. Beri nama file sesuai dengan Anda dan tambahkan ekstensi sebagai .xml .
  3. Tambahkan kode berikut dalam file
  <?xml version="1.0" encoding="utf-8"?>
  <shape xmlns:android="http://schemas.android.com/apk/res/android"
      android:shape="rectangle">
      <corners android:radius="5dp" />
      <stroke android:width="1dp"  />
      <solid android:color="#1e90ff" />
  </shape>
  1. Tambahkan garis di mana Anda ingin tepi membulat android:background="@drawable/corner"

4

Anda dapat menggunakan bentuk persegi panjang yang disediakan (tanpa gradien, kecuali jika Anda menginginkannya) sebagai berikut:

Di drawable/rounded_rectangle.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners android:radius="5dp" />
    <stroke android:width="1dp" android:color="#ff0000" />
    <solid android:color="#00ff00" />
</shape>

Kemudian dalam tampilan teks Anda:

android:background="@drawable/rounded_rectangle"

Tentu saja, Anda ingin menyesuaikan dimensi dan warna.


4

Ada dua langkah

1) Buat file ini di folder yang dapat digambar: - rounded_corner.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
         <corners android:radius="10dp" />  // set radius of corner
         <stroke android:width="2dp" android:color="#ff3478" /> // set color and width of border
         <solid android:color="#FFFFFF" /> // inner bgcolor
</shape>

2) Setel file ini ke TextViewproperti Anda sebagai latar belakang.

android:background="@drawable/rounded_corner"

Anda dapat menggunakan gambar ini di Button atau Edittext juga


3
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@android:id/background">
        <shape>
            <corners android:radius="5dp" />
            <solid android:color="#ffffff"/>

        </shape>
    </item>
</layer-list>

3

Dengan Perpustakaan Komponen Bahan Anda dapat menggunakan MaterialShapeDrawable.

Dengan TextView:

    <TextView
        android:id="@+id/textview"
        ../>

Anda dapat menerapkan MaterialShapeDrawable:

float radius = getResources().getDimension(R.dimen.corner_radius);

TextView textView = findViewById(R.id.textview);
ShapeAppearanceModel shapeAppearanceModel = new ShapeAppearanceModel()
        .toBuilder()
        .setAllCorners(CornerFamily.ROUNDED,radius)
        .build();

MaterialShapeDrawable shapeDrawable = new MaterialShapeDrawable(shapeAppearanceModel);
ViewCompat.setBackground(textView,shapeDrawable);

masukkan deskripsi gambar di sini

Jika Anda ingin mengubah warna latar dan batas hanya berlaku:

shapeDrawable.setFillColor(ContextCompat.getColorStateList(this,R.color.....));
shapeDrawable.setStroke(2.0f, ContextCompat.getColor(this,R.color....));

0

Anda bisa menggunakan SVG untuk membulatkan sudut dan memuat ke dalam ImageView dan menggunakan ConstraintLayout untuk membawa ImageView pada TextView

Saya menggunakannya untuk ImageView bulat dan TextView bulat


0

Cukup menggunakan gambar sudut bulat karena latar belakang tampilan itu akan membuatnya begitu.

android:background="@drawable/my_custom_image"
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.