Sombras projetadas do ImageButton no Android
Esse específico da plataforma Android é usado para habilitar uma sombra projetada em um ImageButton
. Ele é consumido em XAML definindo a ImageButton.IsShadowEnabled
propriedade associável como true
, juntamente com várias propriedades associáveis opcionais adicionais que controlam a sombra projetada:
<ContentPage ...
xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core">
<StackLayout Margin="20">
<ImageButton ...
Source="XamarinLogo.png"
BackgroundColor="GhostWhite"
android:ImageButton.IsShadowEnabled="true"
android:ImageButton.ShadowColor="Gray"
android:ImageButton.ShadowRadius="12">
<android:ImageButton.ShadowOffset>
<Size>
<x:Arguments>
<x:Double>10</x:Double>
<x:Double>10</x:Double>
</x:Arguments>
</Size>
</android:ImageButton.ShadowOffset>
</ImageButton>
...
</StackLayout>
</ContentPage>
Como alternativa, ele pode ser consumido do C# usando a API fluente:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific;
...
var imageButton = new Xamarin.Forms.ImageButton { Source = "XamarinLogo.png", BackgroundColor = Color.GhostWhite, ... };
imageButton.On<Android>()
.SetIsShadowEnabled(true)
.SetShadowColor(Color.Gray)
.SetShadowOffset(new Size(10, 10))
.SetShadowRadius(12);
Importante
Uma sombra projetada é desenhada como parte do plano de fundo, e o plano de ImageButton
fundo só é desenhado se a BackgroundColor
propriedade estiver definida. Portanto, uma sombra projetada não será desenhada se a ImageButton.BackgroundColor
propriedade não estiver definida.
O ImageButton.On<Android>
método especifica que esse específico da plataforma só será executado no Android. O ImageButton.SetIsShadowEnabled
método, no Xamarin.Forms.PlatformConfiguration.AndroidSpecific
namespace, é usado para controlar se uma sombra projetada está habilitada no ImageButton
. Além disso, os seguintes métodos podem ser invocados para controlar a sombra projetada:
SetShadowColor
– define a cor da sombra projetada. A cor padrão éColor.Default
.SetShadowOffset
– define o deslocamento da sombra projetada. O deslocamento altera a direção em que a sombra é projetada e é especificado como umSize
valor. OsSize
valores da estrutura são expressos em unidades independentes do dispositivo, sendo o primeiro valor a distância à esquerda (valor negativo) ou à direita (valor positivo) e o segundo valor a distância acima (valor negativo) ou abaixo (valor positivo). O valor padrão dessa propriedade é (0,0, 0,0), o que resulta na projeção de sombra em todos os lados doImageButton
.SetShadowRadius
– define o raio de desfoque usado para renderizar a sombra projetada. O valor padrão do raio é 10,0.
Observação
O estado de uma sombra projetada pode ser consultado chamando os GetIsShadowEnabled
métodos , GetShadowColor
, GetShadowOffset
, e GetShadowRadius
.
O resultado é que uma sombra projetada pode ser ativada em um ImageButton
: