É possível adicionar uma sombra projetada a um formato personalizado no Android? Depois de examinar a documentação, só vejo uma maneira de aplicar uma sombra de texto.
Eu tentei isso sem sorte:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#90ffffff"/>
<corners android:radius="12dp" />
<item name="android:shadowColor">#000000</item>
<item name="android:shadowRadius">5</item>
<item name="android:shadowDy">3</item>
</shape>
android
android-layout
mdunkle
fonte
fonte
<!-- Bottom 2dp Shadow -->
eu não vejo nenhum2
no seu código ... ???É assim que eu faço:
Código abaixo para um botão ESTADO:
Então você deve ter um seletor com diferentes versões do botão, algo como:
espero que isso possa ajudá-lo ... boa sorte
fonte
Esta é a minha versão de uma sombra projetada. Eu estava procurando uma sombra nebulosa em toda a forma e usei essa resposta de Joakim Lundborg como ponto de partida. O que mudei é adicionar cantos a todos os itens de sombra e aumentar o raio do canto para cada item de sombra subsequente. Então aqui está o
xml
:fonte
O seguinte funcionou para mim: salve como custom_shape.xml.
fonte
Eu acho que esse método produz resultados muito bons:
fonte
A pergunta antiga, mas a Elevação, disponível no Design de Materiais, agora fornece uma sombra para todas as visualizações.
Consulte os documentos em https://developer.android.com/training/material/shadows-clipping.html
fonte
ImageButton
vez de um ImageButtonImageView
mais queButton' because it allows a
permite tanto umandroid:background
como umandroid:src
. Portanto, pude especificarandroid:elevation
apenas uma vez e evitar o "efeito da pirâmide inca" que descrevi no meu último comentário.Eu sugeriria uma pequena melhoria na solução de Bruce, que consiste em evitar o desenho da mesma forma em cima uns dos outros e simplesmente usar o golpe em vez de sólido. Seria assim:
Por fim, gostaria de destacar para as pessoas que desejam uma sombra em uma direção específica que tudo o que você precisa fazer é definir o topo, a base, a esquerda ou a direita como 0dp (para uma linha sólida) ou -1dp (para nada)
fonte
Se você não se importa de fazer algum desenho personalizado com a API do Canvas, confira esta resposta sobre sombras projetadas . Aqui está uma pergunta de seguimento àquela que corrige um problema no original.
fonte
fonte
Eu acho que esse valor de sombra projetada é bom para a maioria dos casos:
fonte
Esta pergunta pode ser antiga, mas para qualquer pessoa no futuro que queira uma maneira simples de obter efeitos de sombra complexos, consulte 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 alcançar o que você procura.
Para alterar a cor da sombra, use app: shadowColor = "seu código de cores".
fonte
9 patch para o resgate, sombra agradável pode ser alcançada facilmente, especialmente com esta ferramenta incrível -
Gerador de sombra para 9 patches do Android
PS: se o projeto não for capaz de compilar, você precisará mover um pouco as linhas pretas no editor de estúdio do android
fonte
se você precisar de uma sombra de linha reta (como na parte inferior da barra de ferramentas), também poderá usar o xml gradiente:
espero que isso ajude alguém
fonte