In Xamarin Forms, I want to rotate an image as 360 degree. This image rotates with animation constantly at run time. Also, this image has 6 versions of different views. Think about like rotating a glass by hand.
I try this one but it is useless:
<Image Source="glass.png" RotateToY="30"/>
You can use the Image "Rotation" property and change it via a background thread if needed and add animate to it via RotateTo
in order to control the rotation speed and start/end point speeds:
async Task RotateImageContinously()
{
while (true) // a CancellationToken in real life ;-)
{
for (int i = 1; i < 7; i++)
{
if (image.Rotation >= 360f) image.Rotation = 0;
await image.RotateTo(i * (360 / 6), 1000, Easing.CubicInOut);
}
}
}
Bounce:
Linear:
Cubic:
Here is a similar question and answers on Xamarin Forums.
The accepted answer suggests this:
private async Task RotateElement(VisualElement element, CancellationToken cancellation)
{
while (!cancellation.IsCancellationRequested)
{
await element.RotateTo(360, 800, Easing.Linear);
await element.RotateTo(0, 0); // reset to initial position
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With