android – 旋转Imagewith动画

前端之家收集整理的这篇文章主要介绍了android – 旋转Imagewith动画前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我拥有的

我有一个箭头图像(像左边的一个).当用户点击它时,它应该旋转180度与动画,应该看起来像正确的.

我做了什么

private void rotate(float degree,final int toggleV) {

        final RotateAnimation rotateAnim = new RotateAnimation(0.0f,degree,RotateAnimation.RELATIVE_TO_SELF,0.5f,0.5f);

        rotateAnim.setDuration(500);
        toggle.startAnimation(rotateAnim);
        rotateAnim.setAnimationListener(new Animation.AnimationListener() {

            @Override
            public void onAnimationStart(Animation animation) {

            }

            @Override
            public void onAnimationEnd(Animation animation) {


                if (toggleV == 1)
                    toggle.setImageResource(R.drawable.toggle_up);
                else
                    toggle.setImageResource(R.drawable.toggle_down);
            }

            @Override
            public void onAnimationRepeat(Animation animation) {

            }
        });
    }

问题

我看到动画效果很好,但在设置图像时有一点闪烁.可能是由于动画结束和图像设置之间的时间差异.

如何清除这个闪烁问题?你有什么更好的做法吗?

解决方法

首先,你最小的SDK要求是什么?如果它至少是Android 3.0,您可以使用较新的动画框架,并使您的图像为此动画:
imageView.animate().rotation(180).start();

关于闪烁:我不会在旋转后重新设置ImageView的源图像,我只是放在原来的位置,并确保旋转动画在动画之后填满,使图像旋转.闪烁很可能是由于在更改源图像时View的重新发布/重绘引起的.

可能会导致进一步的视觉伪像(闪烁?),因为原始旋转的图像和旋转的静态图像可能在几个像素中不同.

猜你在找的Android相关文章