Eu procurei e não consegui encontrar uma maneira adequada de fazer isso. Eu quero ter os seguintes efeitos de sombra em minhas visualizações:
Para ser sincero, não sei se este segundo é feito aplicando o efeito de sombra. Alguma ideia?
android
shadow
dropshadow
longwalker
fonte
fonte
Respostas:
Sei que essa pergunta já foi respondida, mas quero que você saiba que encontrei um
drawable
emAndroid Studio
que é muito semelhante às fotos que você tem na pergunta: Dê uma olhada nisso:Se parece com isso:
Espero que seja útil
Editar
A opção acima é para as versões mais antigas do,
Android Studio
portanto, talvez você não encontre. Para versões mais recentes:Além disso, se você quiser ter seu próprio formato personalizado, sugiro usar um software de desenho como o
Photoshop
e desenhá-lo.Não se esqueça de salvá-lo como
.9.png
arquivo (exemplomy_background.9.png
:)Leia a documentação: Draw 9-patch
Editar 2
Uma solução ainda melhor e menos trabalhosa é usar um
CardView
e definirapp:cardPreventCornerOverlap="false"
para evitar que as visualizações se sobreponham às bordas:Além disso, certifique-se de ter incluído a versão mais recente no
build.gradle
, a atual éfonte
/<sdk-path>/extras/android/support
.cardView
Estou usando o Android Studio 0.8.6 e não consegui encontrar:
então eu encontrei isto:
e é assim:
fonte
colocar um fundo de
@android:drawable/dialog_holo_light_frame
, dá sombra, mas você não pode mudar a cor de fundo nem o estilo da borda, então é melhor se beneficiar da sombra disso, enquanto ainda pode colocar um fundo através da lista de camadassalve-o na pasta drawable em dizer
shadow.xml
para atribuí-lo a uma visão, no arquivo de layout xml defina o fundo dele
fonte
Crie card_background.xml na pasta res / drawable com o seguinte código:
Em seguida, adicione o seguinte código ao elemento para o qual deseja o layout do cartão
a linha a seguir define a cor da sombra do cartão
fonte
O CardView oferece a verdadeira sombra no Android 5+ e possui uma biblioteca de suporte. Basta envolver sua visualização com isso e pronto.
Requer a próxima dependência.
fonte
CardView
também possui níveis de sombra variáveis para diferentes elevações no modo de compatibilidade.Use a propriedade de elevação para obter um efeito de sombra:
Deve ser usado apenas após a v21, verifique este link: http://developer.android.com/training/material/shadows-clipping.html
fonte
Isso pode ser tarde, mas para aqueles que ainda estão procurando uma resposta para isso eu encontrei um projeto no git hub e este é o único que realmente atende às minhas necessidades. android-materialshadowninepatch
Basta adicionar esta linha em sua dependência build.gradle
Felicidades. polegar para o criador! happycodings
fonte
Eu sei que isso é estupidamente hacky,
mas se você quiser oferecer suporte na v21, aqui estão minhas conquistas.
rectangle_with_10dp_radius_white_bg_and_shadow.xml
rectangle_with_10dp_radius_white_bg_and_shadow.xml (v21)
view_incoming.xml
Aqui está o resultado:
Sob v21 (isso é o que você fez com xml)
Acima de v21 (renderização de elevação real)
fonte
Se você precisar que as sombras sejam aplicadas corretamente, você deve fazer o seguinte.
Considere esta visualização, definida com um drawable de fundo:
O drawable de fundo é definido como um retângulo com cantos arredondados:
Esta é a maneira recomendada de aplacar sombras, verifique https://developer.android.com/training/material/shadows-clipping.html#Shadows
fonte
Use a propriedade de elevação para efeito de sombra:
fonte
Crie um drawable de plano de fundo como este para mostrar a sombra arredondada.
fonte
Esta pergunta pode ser antiga, mas para qualquer pessoa no futuro que queira uma maneira simples de obter efeitos de sombra complexos, verifique minha biblioteca aqui https://github.com/BluRe-CN/ComplexView
Usando a biblioteca, você pode alterar as cores das sombras, ajustar as bordas e muito mais. Aqui está um exemplo para conseguir o que você busca.
Para alterar a cor da sombra, use app: shadowColor = "seu código de cor".
fonte
use esta forma como plano de fundo:
fonte