Rozejrzałem się i nie mogłem znaleźć właściwego sposobu, aby to zrobić. Chcę mieć następujące efekty cienia w moich widokach:
Szczerze mówiąc, nie wiem, czy ten drugi to efekt cienia. Jakieś pomysły?
android
shadow
dropshadow
Longwalker
źródło
źródło
Odpowiedzi:
Wiem, że na to pytanie już odpowiedziano, ale chcę, abyś wiedział, że znalazłem
drawable
na stronie,Android Studio
która jest bardzo podobna do zdjęć, które masz w pytaniu: Spójrz na to:To wygląda tak:
Mam nadzieję, że to będzie pomocne
Edytować
Powyższa opcja dotyczy starszych wersji,
Android Studio
więc możesz jej nie znaleźć. W przypadku nowszych wersji:Co więcej, jeśli chcesz mieć swój własny niestandardowy kształt, proponuję użyć programu do rysowania, takiego jak
Photoshop
i narysować go.Nie zapomnij zapisać go jako
.9.png
pliku (przykładmy_background.9.png
:)Przeczytaj dokumentację: Draw 9-patch
Edytuj 2
Jeszcze lepszym i mniej pracowitym rozwiązaniem jest użycie
CardView
zestawu i,app:cardPreventCornerOverlap="false"
aby zapobiec nakładaniu się widoków na granice:Upewnij się również, że uwzględniono najnowszą wersję w
build.gradle
, bieżącym pliku jestźródło
/<sdk-path>/extras/android/support
.cardView
Używam Android Studio 0.8.6 i nie mogę znaleźć:
więc zamiast tego znalazłem to:
i wygląda to tak:
źródło
umieszczenie tła
@android:drawable/dialog_holo_light_frame
, daje cień, ale nie można zmienić koloru tła ani stylu obramowania, więc lepiej jest skorzystać z jego cienia, a jednocześnie być w stanie umieścić tło za pomocą listy warstwzapisz go w folderze do rysowania pod powiedz
shadow.xml
aby przypisać go do widoku, w pliku układu xml ustaw jego tło
źródło
Utwórz card_background.xml w folderze res / drawable za pomocą następującego kodu:
Następnie dodaj następujący kod do elementu, do którego chcesz zastosować układ karty
poniższy wiersz określa kolor cienia karty
źródło
CardView zapewnia prawdziwy cień w systemie Android 5+ i ma bibliotekę wsparcia. Po prostu zawiń nim swój widok i gotowe.
Wymaga kolejnej zależności.
źródło
CardView
różne poziomy cienia dla różnych wysokości w trybie zgodności.Użyj właściwości elewacji, aby uzyskać efekt cienia:
To ma być używane tylko po wersji 21, sprawdź ten link: http://developer.android.com/training/material/shadows-clipping.html
źródło
To może być późno, ale dla tych, którzy wciąż szukają odpowiedzi na to pytanie, znalazłem projekt w git hub i jest to jedyny, który faktycznie odpowiada moim potrzebom. android-materialshadowninepatch
Po prostu dodaj tę linię do zależności build.gradle
Twoje zdrowie. Kciuki w górę dla twórcy! happycodings
źródło
Wiem, że to głupio zepsute,
ale jeśli chcesz wspierać w ramach v21, oto moje osiągnięcia.
rectangle_with_10dp_radius_white_bg_and_shadow.xml
rectangle_with_10dp_radius_white_bg_and_shadow.xml (v21)
view_incoming.xml
Oto wynik:
Zgodnie z wersją 21 (to jest to, co stworzyłeś za pomocą XML)
Powyżej wersji 21 (rzeczywiste renderowanie elewacji)
źródło
Jeśli potrzebujesz odpowiednich cieni do nałożenia, musisz wykonać następujące czynności.
Rozważmy ten widok, zdefiniowany za pomocą rysowanego tła:
Tło do rysowania jest definiowane jako prostokąt z zaokrąglonymi narożnikami:
To jest zalecany sposób stosowania cieni, sprawdź to https://developer.android.com/training/material/shadows-clipping.html#Shadows
źródło
Użyj właściwości elewacji dla efektu cienia:
źródło
Utwórz tło, które można narysować w ten sposób, aby pokazać zaokrąglony cień.
źródło
To pytanie może być stare, ale dla każdego, kto w przyszłości chce prostego sposobu na uzyskanie złożonych efektów cienia, sprawdź moją bibliotekę tutaj https://github.com/BluRe-CN/ComplexView
Korzystając z biblioteki, możesz zmieniać kolory cieni, dostosowywać krawędzie i wiele więcej. Oto przykład, jak osiągnąć to, czego szukasz.
Aby zmienić kolor cienia, użyj app: shadowColor = "twój kod koloru".
źródło
użyj tego kształtu jako tła:
źródło