Xamarin
Forms - Usando ActivityIndicator com imagens e ScrollView com
Texto
![]() |
Neste artigo vou mostrar como podemos usar o ActivityIndicator para exibir o progresso da carga de imagens e a seguir exibir um texto em um ScrollView simulando a entrada do Star Wars. |
![]() |
Para detalhes sobre as view ActivityIndicator e ScrollView veja os meus artigos:
Neste artigo vamos carregar uma imagem e exibir o ActivityIndicator durante a carga da imagem; a seguir vamos usar um ScrollView para exibir um texto ao estilo Star Wars.
Recursos usados:
Criando o projeto Xamarin Forms
Abra o VS 2017 Community e clique em New Project e a seguir escolha Cross Platform -> Cross Platform App (Xamarin.Forms) e informe o nome XF_ImagemActivityIndicator
Ao criar um projeto Xamarin Forms em uma versão anterior à atualização 15.5, você tinha duas opções para compartilhar o código entre as plataformas:
Pois a partir da versão 15.5 do Visual Studio(lançada em dezembro/2017) a opção Portable Class Library (PCL) foi substituida pela .NET Standard:
![]() |
Marque as opções Android e/ou iOS, marque Xamarin Forms e a seguir marque .NET Standard e clique no botão OK.
Pronto nosso projeto já esta criado.
Definindo um dicionário de recursos no arquivo App.xaml
Vamos abrir o arquivo App.xaml e definir alguns recursos estáticos como o a cor do texto, o tamanho da fonte, o texto usado na apresentação e alguns estilos que vamos aplicar ao texto:
Nota: Para saber mais sobre como funcionam os recursos ResourceDictionary e Style veja os artigos :
<?xml version="1.0" encoding="utf-8" ?>
<Application xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="XF_ImagemActivityIndicator.App">
<Application.Resources>
<ResourceDictionary>
<!--Text Color-->
<Color x:Key="TextColor">#ffd700</Color>
<!-- Font customizada -->
<OnPlatform x:Key="RegularFontFamily" x:TypeArguments="x:String">
<On Platform="iOS">HelveticaNeue</On>
<On Platform="Android">sans-serif</On>
</OnPlatform>
<!-- tamanho da fonte -->
<x:Double x:Key="TitleFont">16</x:Double>
<x:String x:Key="WarsTexto">
A PRIMEIRA ORDEM reina.
Tendo dizimado a pacífica
República, o Líder Supremo Snoke
agora envia suas implacáveis
legiões para assumir militarmente
o controle da galáxia.
Somente os guerreiros da
RESISTÊNCIA da General
Leia Organa se colocam
contra a tirania crescente,
certos de que o Mestre Jedi
Luke Skywalker vai retornar
e devolver uma fagulha de
esperança à luta.
Mas a resistência foi exposta.
Enquanto a Primeira Ordem
Se direciona para a Base Rebelde
os valentes heróis preparam
uma fuga desesperada.
</x:String>
<!-- styles -->
<Style x:Key="TextFontAttributes" TargetType="Label">
<Setter Property="TextColor" Value="{StaticResource TextColor}" />
<Setter Property="FontFamily" Value="{StaticResource RegularFontFamily}" />
<Setter Property="FontSize" Value="{StaticResource TitleFont}" />
</Style>
</ResourceDictionary>
</Application.Resources>
</Application>
|
Definindo o código do arquivo MainPage.xaml
Abra o arquivo MainPage.xaml e inclua o código abaixo:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:XF_ImagemActivityIndicator"
x:Class="XF_ImagemActivityIndicator.MainPage">
<Grid>
<Image x:Name="imgFonte" Aspect="Fill"/>
<ActivityIndicator BindingContext="{x:Reference imgFonte}" IsRunning="{Binding IsLoading}" />
<ScrollView Orientation="Vertical" RotationX="15" Padding="0,800,0,0">
<Label x:Name="Text" Style="{StaticResource TextFontAttributes}" Text="{StaticResource WarsTexto}"
HorizontalOptions="Fill" XAlign="Center"/>
</ScrollView>
</Grid>
</ContentPage>
|
No código XAML definimos uma view Image chamada imgFonte e um ActitivityIndicator vinculado à imagem.
A seguir definimos a view ScrollView onde vamos exibir uma Label aplicando os estilos e usando o texto definido no arquvo App.xaml.
Para concluir inclua o código a seguir no arquivo MainPage.xaml.cs :
using System;
using Xamarin.Forms;
namespace XF_ImagemActivityIndicator
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
imgFonte.Source = new UriImageSource()
{
Uri = new Uri("https://www.nasa.gov/sites/default/files/thumbnails/image/potw1706a.jpg"),
CachingEnabled = false,
CacheValidity = new TimeSpan(5, 0, 0, 0)
};
}
}
}
|
No código C# estamos carregando uma imagem de uma URI indicada e desabilitando o cache para poder exibir o ActivityIndicator.
Executando projeto temos o seguinte resultado:
Pegue o
código usado no projeto aqui :
XF_ImagemActivityIndicator.zip (somente o projeto compartilhado)
(Disse Jesus) "Na verdade, na verdade
vos digo que quem ouve a minha palavra, e crê naquele que me enviou, tem a vida
eterna, e não entrará em condenação, mas passou da morte para a vida."
João
5:24
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a
Objetos com VB .NET
Xamarin Android - Apresentando o controle ProgressBar - Macoratti.net
Xamarin Android - Usando o serviço de Alarme - Macoratti.net
Xamarin.Forms - Usando a view ActivityIndicator - Macoratti.net