Saya memiliki gambar ini untuk memiliki persegi panjang bulat sebagai latar belakang:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white" />
<stroke android:width="1dp" android:color="@color/light_gray" />
<padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" />
<corners android:radius="6dp" />
</shape>
Ini berfungsi dengan baik, seperti yang diharapkan.
Sekarang, saya ingin mengubah ini hanya di tikungan atas, jadi saya mengubahnya ke ini:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white" />
<stroke android:width="1dp" android:color="@color/light_gray" />
<padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" />
<corners android:topLeftRadius="6dp" android:topRightRadius="6dp"
android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp"/>
</shape>
Tapi sekarang tidak ada sudut yang bulat dan saya mendapatkan persegi panjang polos. Apa yang kulewatkan di sini?
android
drawable
rounded-corners
Aleks G
sumber
sumber
Jawaban:
Coba berikan nilai-nilai ini:
Perhatikan bahwa saya telah berubah
0dp
menjadi0.1dp
.EDIT: Lihat Aleks G komentar di bawah untuk versi yang lebih bersih
sumber
<corners android:radius="1dp" android:topLeftRadius="6dp" android:topRightRadius="6dp" android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp"/>
- ini menghasilkan sudut bawah sempurna persegi tanpa sedikit pun pembulatan. Namun solusi Anda cukup berhasil.android:radius="1dp"
Coba lakukan sesuatu seperti ini:
Tampaknya tidak cocok untuk mengatur radius sudut persegi panjang yang berbeda. Jadi Anda bisa menggunakan hack ini.
sumber
Dalam kasus saya, kode di bawah ini
sumber
Membangun berdasarkan jawaban busylee , ini adalah bagaimana Anda dapat membuat sudut
drawable
yang hanya memiliki satu sudut tidak bulat (kiri-atas, dalam contoh ini):Harap dicatat bahwa di atas
drawable
adalah tidak ditampilkan dengan benar di Android Studio preview (2.0.0p7). Untuk mempratinjau, buat tampilan lain dan gunakan ini sebagaiandroid:background="@drawable/..."
.sumber
Saya mencoba kode Anda dan mendapat tombol sudut bulat atas. Saya memberi warna
@ffffff
dan stroke yang saya berikan#C0C0C0
.mencoba
sumber
Anda mungkin perlu membaca ini https://developer.android.com/guide/topics/resources/drawable-resource.html#Shape
dan di bawah ada Note.
Catatan Setiap sudut (awalnya) harus disediakan radius sudut lebih besar dari 1, atau sudut tidak dibulatkan. Jika Anda ingin sudut tertentu tidak dibulatkan, penyelesaiannya adalah menggunakan android: radius untuk menetapkan radius sudut default lebih besar dari 1, tetapi kemudian menimpa setiap sudut dengan nilai yang Anda inginkan, memberikan nol ("0dp" ) di mana Anda tidak ingin sudut membulat.
sumber
Buat roung_top_corners.xml di drawable dan salin kode di bawah ini
sumber