360 degree image rotating in Xamarin Forms

后端 未结 3 369
一生所求
一生所求 2021-01-19 22:55

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. Thin

相关标签:
3条回答
  • 2021-01-19 23:25

    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:

    0 讨论(0)
  • 2021-01-19 23:26

    Hope this package will help you https://github.com/ilievmark/Basil.Behaviors/tree/master/sample/BehaviorsSample/Pages/Animations

    You can use something like this

               <d:CycledAnimationDecorator Cycles="10">
                    <h:SequenceHandlerExecutor WaitResult="True">
                        <s:RotateAnimation Length="800" Rotation="360" />
                        <s:RotateAnimation Length="0" Rotation="0" />
                    </h:SequenceHandlerExecutor>
                </d:CycledAnimationDecorator>
    
    0 讨论(0)
  • 2021-01-19 23:47

    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
        }
    }
    
    0 讨论(0)
提交回复
热议问题