5

我有一个图像(看起来像一个圆形加载圆),我想围绕它自己的中心旋转。我看到很多代码建议将 PivotY 和 PivotX 设置为 0.5F 或图像的一半。两者都不起作用..经过大量试验和错误后,它确实使用以下代码围绕自己的中心旋转:

ImageView loading = FindViewById<ImageView>(Resource.Id.loadingGif);
RotateAnimation rAnim = new RotateAnimation(0.0F, 359.0F,      Dimension.RelativeToSelf, 0.25F, Dimension.RelativeToSelf, 0.25F);
rAnim.Interpolator = new LinearInterpolator();
rAnim.RepeatCount = Animation.Infinite;
rAnim.Duration = 1000;
loading.StartAnimation(rAnim);

但是动画本身不再流畅,图像似乎旋转了大约 50 度,然后开始挂起并跳过一半的旋转,然后在旋转的上半部分正常继续(我希望这有任何意义)。

知道为什么我的旋转不能顺利旋转 360 度吗?

编辑

我还没有解决这个问题,但我确实发现了它的一些特殊之处。动画在加载屏幕上使用,动画时刻没有额外的功能。我注意到,当我将手指放在屏幕上时,动画确实顺利进行!

这让我想到问题可能不在动画代码中,而在其他方面......但我还不知道......

4

1 回答 1

5

我终于找到了答案!

我已经包括了这一行:

loading.setDrawingCacheEnabled(true);

之后也必须将枢轴更改为 0.5F。现在动画运行流畅!

//Rotate image
ImageView loading = FindViewById<ImageView>(Resource.Id.loadingGif);
loading.setDrawingCacheEnabled(true);
rAnim = new RotateAnimation(0.0F, 359.0F, Dimension.RelativeToSelf, 0.5F, Dimension.RelativeToSelf, 0.5F);  
rAnim.Interpolator = new LinearInterpolator();
rAnim.RepeatCount = Animation.Infinite;
rAnim.Duration = 1500;
loading.StartAnimation(rAnim);
于 2012-10-02T07:07:23.010 回答