Si riporta l'articolo scritto per il sito
https://www.iprogrammatori.it/articoli/microsoft-net-framework/art_csharp-maui-animazione-di-un-immagine_1867.aspx
In questo articolo vedremo come utilizzare alcune classi messe a disposizione del Framework MAUI per gestire le animazioni.
In particolare vedremo come spostare un’immagine dal lato sinistro al lato destro, e capovolgendola, il tutto con poche righe di codice, il tutto come mostrato nelle figure successive.
Figura 1 – L’immagine che si sposta nella form
Figura 2 – L’immagine che ruota
Utilizzeremo la versione 7 del Framework ed il linguaggio di programmazione C#, ma il codice è utilizzabile anche con altre versioni del Framework.
Creazione del progetto
Si crea un nuovo progetto di tipo MAUI, indicando la versione 7 o altra del Framework, impostando un nome ed il percorso di dove si vuole salvare il progetto.
Una volta creato il progetto, apriamo il file XAML, che è la parte nel quale si trovano i controlli visibili, lasciamo come controllo quello immagine e la label, il resto viene tutto cancellato compresa la parte del codice al quale fa riferimento.
Per il controllo Label, impostiamo la proprietà “Name” con il valore “lblTesto” e la proprietà “Text” con il valore “Esempio Animazione” il tutto come mostrato nel frammento di codice qui di seguito.
XAML
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MauiGrafica.MainPage">
<ScrollView >
<VerticalStackLayout
Spacing="25"
Padding="30,0"
VerticalOptions="Center">
<Image
Source="dotnet_bot.png"
x:Name="imageLogo"
SemanticProperties.Description="Logo Maui!"
HeightRequest="200"
HorizontalOptions="Center" />
<Label
x:Name="lblTesto"
Text="Esempio Animazione"
SemanticProperties.HeadingLevel="Level1"
FontSize="32"
HorizontalOptions="Center" />
</VerticalStackLayout>
</ScrollView>
</ContentPage>
Stesura del codice
Terminata la creazione del progetto e l’impostazione dei controlli non resta che scrivere il codice. Passiamo in visualizzazione codice, nel file CS, e nell’evento del costruttore della classe, dopo “InitializeComponent” scriviamo il codice per l’animazione.
Utilizzeremo la classe “Animation” per eseguire i vari effetti, in particolare impostando alcune proprietà, daremo l’effetto di spostamento indicando dove spostarsi (Destra, sinistra, alto e basso) ed anche il tempo di ogni singola azione.
Ogni effetto sarà un oggetto della classe “Animation” che saranno aggiunti ad un oggetto master, che conterrà tutti i vari oggetti.
Di seguito il frammento completo delle suddette operazioni nel linguaggio C#.
C#
public
MainPage()
{
InitializeComponent();
var Animazione = new Animation();
var SpostaSinistraAnimazione = new
Animation(v => imageLogo.TranslationX = v, 0, 250);
var TornaIndietroAnimazione = new
Animation(v => imageLogo.TranslationX = v, 250, 200);
var SpostaDestraAnimazione = new
Animation(v => imageLogo.TranslationX = v, 500, 700);
var ruotaAnimazione = new
Animation(v => imageLogo.Rotation = v, 0, 360);
var MuoviRotazioneAnimazione = new
Animation(v => imageLogo.TranslationX = v, 200, 500);
var AnimazioneAlta = new
Animation(v => imageLogo.TranslationY = v, 0, -200);
var AnimazioneBassa = new
Animation(v => imageLogo.TranslationY = v, -200, 0);
var RotazioneAnimazioneSu = new
Animation(v => imageLogo.TranslationY = v, 0, -30);
var RotazioneAnimazioneGiu = new
Animation(v => imageLogo.TranslationY = v, -30, 0);
var RotazioneAnimazioneSuSeconda =
new Animation(v => imageLogo.TranslationY = v, 0, -30);
var RotazioneAnimazioneGiuSeconda =
new Animation(v => imageLogo.TranslationY = v, -30, 0);
Animazione.Add(0, 0.15,
SpostaSinistraAnimazione);
Animazione.Add(0.25, 0.35,
TornaIndietroAnimazione);
Animazione.Add(0.35, 0.65,
ruotaAnimazione);
Animazione.Add(0.35, 0.65,
MuoviRotazioneAnimazione);
Animazione.Add(0.35, 0.5,
AnimazioneAlta);
Animazione.Add(0.5, 0.65,
AnimazioneBassa);
Animazione.Add(0.7, 0.75,
RotazioneAnimazioneSu);
Animazione.Add(0.75, 0.8,
RotazioneAnimazioneGiu);
Animazione.Add(0.8, 0.85,
RotazioneAnimazioneSuSeconda);
Animazione.Add(0.85, 0.9,
RotazioneAnimazioneSuSeconda);
Animazione.Add(0.9, 1,
SpostaDestraAnimazione);
Animazione.Commit(this,
"Animazione", 10, 5000, null, null, repeat: () => true);
}
Ora non resta che eseguire la nostra applicazione per vedere i vari effetti.
Conclusioni
L’articolo ha voluto fornire una tecnica di animazione sulle immagini utilizzando alcune classi messe a disposizione dal Framework MAUI, numerose sono le tecniche e le classi messe a disposizione di questo Framework, che permettono di applicare effetti speciali nelle varie tipologie di applicazioni.
La tecnica applicata in questo articolo, ha voluto fornire al lettore una delle tante possibilità che si possono fare nello sviluppo multi piattaforma.
Nessun commento:
Posta un commento