Saya ingin membuat perbatasan yang sama dengan LinearLayout ini sebagai contoh:
Dalam contoh ini, kita dapat melihat bahwa perbatasan tidak sama di sekitar LinearLayout. Bagaimana saya bisa membuat ini menggunakan file drawable XML?
Untuk saat ini, saya hanya dapat membuat perbatasan sederhana di sekitar LinearLayout seperti ini:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<corners
android:radius="1dp"
android:topRightRadius="0dp"
android:bottomRightRadius="0dp"
android:bottomLeftRadius="0dp" />
<stroke
android:width="1dp"
android:color="#E3E3E1" />
<solid android:color="@color/blanc" />
</shape>
android
border
android-linearlayout
wawanopoulos
sumber
sumber
background
properti untuk itu ... membuat satu file XML dengan bentuk seperti persegi panjang, efek warna dan bayangan untuknya dan mengaturnya sebagai latar belakang untuk tata letak linier Anda ..Jawaban:
Coba ini..
sumber
"0dp"
dengan"1dp"
jawaban Hariharan.<gradient>
dalam<shape>
untuk meningkatkan efek perbatasan, dan juga jika itu benar-benar efek yang dibutuhkan UI Anda, bukan hanya perbatasan warna solid.Itu sebabnya CardView ada. CardView | Pengembang Android
Ini hanyalah FrameLayout yang mendukung peningkatan perangkat pra-lolipop.
Untuk menggunakan ini, Anda perlu menambahkan ketergantungan ke
build.gradle
:sumber
Saya mendapatkan hasil terbaik dengan menggunakan grafik 9 patch.
Anda cukup membuat grafik 9 patch individual dengan menggunakan editor berikut: http://inloop.github.io/shadow4android/
Contoh:
Grafik 9 patch:
Hasil:
Sumber:
sumber
oke, saya tahu ini sudah terlambat. tetapi saya memiliki persyaratan yang sama. saya memecahkan seperti ini
1. Pertama buat file xml (contoh: border_shadow.xml) di folder "drawable" dan salin kode di bawah ini ke dalamnya.
2.Sekarang pada tata letak tempat Anda menginginkan bayangan (contoh: LinearLayout) tambahkan ini di android: background
dan itu berhasil untuk saya.
sumber
Ini sangat sederhana:
Buat file yang dapat digambar dengan gradien seperti ini:
untuk bayangan di bawah tampilan
below_shadow.xml
untuk bayangan di atas tampilan
above_shadow.xml
dan seterusnya untuk bayangan kanan dan kiri hanya mengubah sudut gradien :)
sumber
Sebagai alternatif, Anda mungkin menggunakan gambar patch 9 sebagai latar belakang untuk tata letak Anda, memungkinkan bayangan yang lebih "alami":
Hasil:
Letakkan gambar di
/res/drawable
folder Anda .Pastikan ekstensi file
.9.png
tidak.png
Omong-omong, ini adalah modifikasi (dikurangi menjadi ukuran kuadrat minimum) dari sumber daya yang ada yang ditemukan di folder sumber daya API 19 SDK.
Saya meninggalkan spidol merah, karena tampaknya tidak berbahaya, seperti yang ditunjukkan pada alat draw9patch.
[EDIT]
Tentang 9 tambalan, seandainya Anda tidak pernah melakukan apa pun dengannya.
Cukup tambahkan sebagai latar belakang Tampilan Anda.
Area bertanda hitam (kiri dan atas) akan meregang (vertikal, horizontal).
Area yang ditandai hitam (kanan, bawah) mendefinisikan "area konten" (di mana dimungkinkan untuk menambahkan teks atau Tampilan - Anda dapat memanggil wilayah yang tidak ditandai "padding", jika Anda mau).
Tutorial: http://radleymarx.com/blog/simple-guide-to-9-patch/
sumber
Anda membuat file .xml yang dapat digambar dengan nama drop_shadow.xml:
Kemudian:
sumber
Gunakan satu baris ini dan mudah-mudahan Anda akan mencapai hasil terbaik;
gunakan:
android:elevation="3dp"
Sesuaikan ukuran sebanyak yang Anda butuhkan dan ini adalah cara terbaik dan paling sederhana untuk mencapai tombol seperti bayangan dan bayangan android default lainnya. Beri tahu saya jika itu berhasil!sumber
Jika Anda sudah memiliki batas dari bentuk, tambahkan saja ketinggian:
sumber
1. Pertama buat nama file xml shadow.xml di folder "drawable" dan salin kode di bawah ini ke dalamnya.
Kemudian tambahkan layer-list sebagai latar belakang di LinearLayout Anda.
sumber
sumber
Saya tahu ini terlambat tetapi bisa membantu seseorang.
Anda bisa menggunakan constraintLayout dan menambahkan properti berikut di xml,
sumber
Saya menemukan cara terbaik untuk mengatasi ini.
Anda perlu mengatur latar belakang persegi panjang yang solid pada tata letak.
Gunakan kode ini -
ViewCompat.setElevation(view , value)
Pada set tata letak induk
android:clipToPadding="false"
sumber
ViewCompat.setElevation()
metode pada kelas ViewCompat:public void setElevation(View view, float elevation) {}
. Seperti yang Anda lihat, itu tidak diterapkan. Saya benar-benar ragu itu akan membantu, dan benar-benar bertanya-tanya apakah Anda benar-benar menguji jawaban Anda sendiri, lol