Partilhar via


GravatarImageSource

Um Gravatar (um “avatar reconhecido globalmente”) é uma imagem que pode ser usada em vários sites como seu avatar; ou seja, uma imagem que representa você. Por exemplo, um Gravatar pode identificar uma pessoas em uma postagem de fórum, em um comentário de blog e assim por diante. (Você pode registrar seu próprio Gravatar no site do Gravatar em http://www.gravatar.com/.) Se quiser exibir imagens ao lado dos nomes ou endereços de email das pessoas, poderá usar GravatarImageSource.

Sintaxe

Incluir o namespace XAML

Para usar o kit de ferramentas no XAML, o xmlns a seguir precisa ser adicionado à sua página ou exibição:

xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"

Portanto, o seguinte:

<ContentPage
    x:Class="CommunityToolkit.Maui.Sample.Pages.MyPage"
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">

</ContentPage>

Seria modificado para incluir o xmlns conforme o seguinte:

<ContentPage
    x:Class="CommunityToolkit.Maui.Sample.Pages.MyPage"
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit">

</ContentPage>

Usar o GravatarImageSource

O exemplo a seguir mostra como usar GravatarImageSource:

<ContentPage
    x:Class="CommunityToolkit.Maui.Sample.Pages.MyPage"
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit">
    <VerticalStackLayout>
        <Image>
            <Image.Source>
                <toolkit:GravatarImageSource
                    CacheValidity="1"
                    CachingEnabled="True"
                    Email="youremail@here.com"
                    Image="MysteryPerson" />
            </Image.Source>
        </Image>
    </VerticalStackLayout>
</ContentPage>

Este é o código C# equivalente:

using CommunityToolkit.Maui.ImageSources;

partial class MyPage : ContentPage
{
	public MyPage()
	{
        Image myImage = new()
        {
            Source = new GravatarImageSource()
            {
                CacheValidity = TimeSpan.FromDays(1),
                CachingEnabled = true,
                Email = "youremail@here.com",
                Image= DefaultImage.MysteryPerson
            },
        };
		Content = myImage;
	}
}

Propriedades

Propriedade Type Descrição
CacheValidity TimeSpan A propriedade CacheValidity, do tipo TimeSpan, especifica por quanto tempo a imagem será armazenada localmente. O valor padrão dessa propriedade é 1 dia.
CachingEnabled bool A propriedade CachingEnabled, do tipo bool, define se o cache de imagem está habilitado. O valor padrão dessa propriedade é true.
Email string? A propriedade Email, do tipo string?, especifica o endereço de email da conta Gravatar. Se não estiver definida, a imagem do Gravatar será renderizada. Se estiver definida e não for encontrada no Gravatar, a imagem da propriedade Image será renderizada.
Imagem DefaultImage A propriedade Image, do tipo DefaultImage é uma enumeração usada para especificar a imagem padrão se email não for encontrado no Gravatar.

Essas propriedades são apoiadas por objetos BindableProperty, o que significa que elas podem ser o destino de vinculações de dados e estilizadas.

Definir a validade do cache

A propriedade CacheValidity é um TimeSpan que especifica por quanto tempo a imagem será armazenada localmente.

O exemplo a seguir define a validade do cache de um GravatarImageSource:

<Image>
    <Image.Source>
        <toolkit:GravatarImageSource CacheValidity="1" />
    </Image.Source>
</Image>

Este é o código C# equivalente:

Image myImage = new()
{
    Source = new GravatarImageSource()
    {
        CacheValidity = TimeSpan.FromDays(1),
    },
};

Definir o cache habilitado

A propriedade CachingEnabled é um bool que define se o cache de imagem está habilitado.

O exemplo a seguir define o cache como habilitado para um GravatarImageSource:

<Image>
    <Image.Source>
        <toolkit:GravatarImageSource CachingEnabled="True" />
    </Image.Source>
</Image>

Este é o código C# equivalente:

Image myImage = new()
{
    Source = new GravatarImageSource()
    {
        CachingEnabled = true,
    },
};

Definir email

A propriedade Email é um string anulável. Se a propriedade for nula ou vazia, a imagem do Gravatar padrão será renderizada. Se o endereço de email não tiver nenhuma imagem do Gravatar correspondente, a imagem da propriedade Image será renderizada.

O exemplo a seguir define um endereço de email que tem uma imagem do Gravatar correspondente:

<Image>
    <Image.Source>
        <toolkit:GravatarImageSource Email="dsiegel@avantipoint.com" />
    </Image.Source>
</Image>

Este é o código C# equivalente:

Image myImage = new()
{
    Source = new GravatarImageSource()
    {
        Email = "dsiegel@avantipoint.com",
    },
};

O exemplo a seguir não define um endereço de email e, portanto, exibirá a imagem do Gravatar padrão.

<Image>
    <Image.Source>
        <toolkit:GravatarImageSource />
    </Image.Source>
</Image>

Este é o código C# equivalente:

Image myImage = new()
{
    Source = new GravatarImageSource(),
};

O exemplo a seguir define um endereço de email que não tem nenhuma imagem do Gravatar correspondente e, portanto, exibirá a imagem de Image padrão.

<Image>
    <Image.Source>
        <toolkit:GravatarImageSource Email="notregistered@emailongravitar.com" />
    </Image.Source>
</Image>

Este é o código C# equivalente:

Image myImage = new()
{
    Source = new GravatarImageSource()
    {
        Email = "notregistered@emailongravitar.com",
    },
};

Definir imagem padrão

A propriedade Image é uma enumeração usada para especificar a imagem padrão se o endereço email não tiver nenhuma imagem do Gravatar correspondente. As opções disponíveis são:

  • MysteryPerson (padrão) – Um contorno simples no estilo de desenho animado de uma pessoa (não varia de acordo com o hash de email)
  • FileNotFound – Não carregue nenhuma imagem se nenhuma estiver associada ao hash de email, em vez disso, retorne uma resposta HTTP 404 (Arquivo não encontrado).
  • Identicon – Um padrão geométrica baseado em um hash de email.
  • MonsterId – Um “monstro” gerado com cores diferentes, rostos etc.
  • Wavatar – Rostos gerados com feições e planos de fundo diferentes.
  • Retro – Rostos incríveis gerados em pixel no estilo fliperama de 8 bits.
  • Robohash – Um robô gerado com cores diferentes, rostos etc.
  • Blank – Uma imagem PNG transparente.

O exemplo a seguir define a imagem padrão de um GravatarImageSource:

<Image>
    <Image.Source>
        <toolkit:GravatarImageSource Email="notregistered@emailongravitar.com" Image="Retro" />
    </Image.Source>
</Image>

Este é o código C# equivalente:

Image myImage = new()
{
    Source = new GravatarImageSource()
    {
        Email = "notregistered@emailongravitar.com",
        Image = DefaultImage.Retro
    },
};

Define o tamanho da imagem

Por padrão, imagens GravatarImageSource são apresentadas em 80px por 80px. Os tamanhos de imagem podem estar entre 1px e 2048px e são retirados de suas propriedades de tamanho de exibição pai. As imagens do Gravatar são quadradas e a maior das propriedades definidas será obtida.

O exemplo a seguir define o tamanho do controle de imagem e, portanto, o tamanho da imagem do Gravatar solicitada será de 73px.

<Image WidthRequest="72" HeightRequest="73">
    <Image.Source>
        <toolkit:GravatarImageSource Email="dsiegel@avantipoint.com" />
    </Image.Source>
</Image>

Este é o código C# equivalente:

Image myImage = new()
{
    Source = new GravatarImageSource()
    {
        Email = "dsiegel@avantipoint.com",
    },
    HeightRequest = 72,
    HeightRequest = 73,
};

Exemplos

Encontre exemplos desse controle em ação no Aplicativo de exemplo do .NET MAUI Community Toolkit.

API

O código-fonte do GravatarImageSource pode ser encontrado no repositório GitHub do .NET MAUI Community Toolkit.