Saya mencari-cari, dan saya tidak dapat menemukan cara yang tepat untuk melakukan ini. Saya ingin memiliki efek bayangan berikut pada pandangan saya:
Sejujurnya, saya tidak tahu apakah yang kedua ini dilakukan dengan menerapkan efek bayangan. Ada ide?
android
shadow
dropshadow
longwalker
sumber
sumber
Jawaban:
Aku tahu pertanyaan ini sudah dijawab tapi aku ingin kau tahu bahwa aku menemukan
drawable
padaAndroid Studio
yang sangat mirip dengan foto yang Anda miliki dalam pertanyaan: Lihatlah ini:Ini terlihat seperti ini:
Semoga bermanfaat
Edit
Opsi di atas adalah untuk versi yang lebih lama
Android Studio
sehingga Anda mungkin tidak menemukannya. Untuk versi yang lebih baru:Selain itu, jika ingin memiliki custom shape sendiri, saya sarankan untuk menggunakan software like
Photoshop
and draw.Jangan lupa menyimpannya sebagai
.9.png
file (contohmy_background.9.png
:)Baca dokumentasinya: Gambar 9-patch
Edit 2
Solusi yang lebih baik dan tidak terlalu sulit adalah menggunakan a
CardView
dan setapp:cardPreventCornerOverlap="false"
untuk mencegah tampilan tumpang tindih dengan batas:Pastikan juga untuk menyertakan versi terbaru dalam
build.gradle
, saat inisumber
/<sdk-path>/extras/android/support
.cardView
Saya menggunakan Android Studio 0.8.6 dan saya tidak dapat menemukan:
jadi saya menemukan ini sebagai gantinya:
dan terlihat seperti ini:
sumber
menempatkan latar belakang
@android:drawable/dialog_holo_light_frame
, memberi bayangan tetapi Anda tidak dapat mengubah warna latar belakang atau gaya batas, jadi lebih baik memanfaatkan bayangan itu, sambil tetap dapat menempatkan latar belakang melalui daftar lapisansimpan di folder drawable di bawah say
shadow.xml
untuk menetapkannya ke tampilan, dalam file layout xml setel latar belakangnya
sumber
Buat card_background.xml di folder res / drawable dengan kode berikut:
Kemudian tambahkan kode berikut ke elemen yang Anda inginkan untuk tata letak kartunya
baris berikut menentukan warna bayangan untuk kartu tersebut
sumber
CardView memberi Anda bayangan sebenarnya di Android 5+ dan memiliki pustaka dukungan. Cukup bungkus pandangan Anda dengannya dan selesai.
Ini membutuhkan ketergantungan berikutnya.
sumber
CardView
juga memiliki tingkat bayangan yang berbeda-beda untuk berbagai ketinggian dalam mode compat.Gunakan properti elevasi untuk mendapatkan efek bayangan:
Ini hanya untuk digunakan setelah v21, lihat tautan ini: http://developer.android.com/training/material/shadows-clipping.html
sumber
Ini mungkin terlambat tetapi bagi mereka yang masih mencari jawaban untuk ini saya menemukan proyek di git hub dan ini adalah satu-satunya yang benar-benar sesuai dengan kebutuhan saya. android-materialshadowninepatch
Cukup tambahkan baris ini pada dependensi build.gradle Anda
Bersulang. diacungi jempol untuk pencipta! happycodings
sumber
Saya tahu ini bodoh sekali,
tetapi jika Anda ingin mendukung di bawah v21, inilah pencapaian saya.
rectangle_with_10dp_radius_white_bg_and_shadow.xml
rectangle_with_10dp_radius_white_bg_and_shadow.xml (v21)
view_incoming.xml
Inilah hasilnya:
Di bawah v21 (ini adalah yang Anda dibuat dengan xml)
Di atas v21 (rendering elevasi nyata)
sumber
Jika Anda membutuhkan bayangan dengan benar untuk diterapkan maka Anda harus melakukan hal berikut.
Pertimbangkan tampilan ini, yang ditentukan dengan drawable latar belakang:
Drawable latar belakang didefinisikan sebagai persegi panjang dengan sudut membulat:
Ini adalah cara yang disarankan untuk mengaplikasikan bayangan, lihat ini https://developer.android.com/training/material/shadows-clipping.html#Shadows
sumber
Gunakan properti elevasi untuk pengaruh bayangan:
sumber
Buat latar belakang drawable seperti ini untuk menunjukkan bayangan bulat.
sumber
Pertanyaan ini mungkin sudah lama, tetapi bagi siapa pun di masa depan yang menginginkan cara sederhana untuk mencapai efek bayangan kompleks, lihat perpustakaan saya di sini https://github.com/BluRe-CN/ComplexView
Menggunakan pustaka, Anda dapat mengubah warna bayangan, mengubah tepi, dan banyak lagi. Berikut adalah contoh untuk mencapai apa yang Anda cari.
Untuk mengubah warna bayangan, gunakan app: shadowColor = "kode warna Anda".
sumber
gunakan bentuk ini sebagai latar belakang:
sumber