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的重新发布/重绘引起的.

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

相关文章

以下为个人理解,如错请评 CE: 凭据加密 (CE) 存储空间, 实际路径/data/user_ce/ DE: 设备加密 (DE) 存...
转载来源:https://blog.csdn.net/yfbdxz/article/details/114702144 用EventLog.writeEvent打的日志(或...
事件分发机制详解 一、基础知识介绍 1、经常用的事件有:MotionEvent.ACTION_DOWN,MotionEvent.ACTION...
又是好久没有写博客了,一直都比较忙,最近终于有时间沉淀和整理一下最近学到和解决的一些问题。 最近进...
Android性能优化——之控件的优化 前面讲了图像的优化,接下来分享一下控件的性能优化,这里主要是面向...
android的开源库是用来在android上显示gif图片的。我在网上查了一下,大家说这个框架写的不错,加载大的...