在Xamarin Forms中,我想将图像旋转为360度。此图像在运行时不断旋转动画。此外,此图像有6个版本的不同视图。想想就像用手旋转玻璃一样。
我试试这个,但没用:
<Image Source="glass.png" RotateToY="30"/>
答案 0 :(得分:6)
您可以使用图像“旋转”属性并根据需要通过后台线程进行更改,并通过RotateTo
为其添加动画,以控制旋转速度和起点/终点速度:
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);
}
}
}
跳出:
线性:
立方:
答案 1 :(得分:0)
这是a similar question and answers on Xamarin Forums。
接受的答案表明了这一点:
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
}
}
答案 2 :(得分:0)
希望此软件包对您有帮助 https://github.com/ilievmark/Basil.Behaviors/tree/master/sample/BehaviorsSample/Pages/Animations
您可以使用类似的东西
<d:CycledAnimationDecorator Cycles="10">
<h:SequenceHandlerExecutor WaitResult="True">
<s:RotateAnimation Length="800" Rotation="360" />
<s:RotateAnimation Length="0" Rotation="0" />
</h:SequenceHandlerExecutor>
</d:CycledAnimationDecorator>