顺利旋转

时间:2011-10-27 16:41:36

标签: android android-animation

例如,如果我将搜索栏移动到100,我希望imageView在一秒钟内旋转到100deg。问题是,如果我立即将其移动到50,它会跳到100并慢慢变为50。 有没有办法从当前位置旋转它......或者更优雅的解决方案是为那些随机度数更平滑的动画?

seekBar1 = (SeekBar) findViewById(R.id.seekBar1);
arrow2 = (ImageView) findViewById(R.id.imageView1 );    

seekBar1.setOnSeekBarChangeListener( new OnSeekBarChangeListener()
{
    public void onProgressChanged(SeekBar seekBar1, int progress, boolean fromUser)
    {
        currentSpeed.setText(""+progress);

        RotateAnimation rotateAnimation = new RotateAnimation(fromPosition ,progress,
                Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
                0.5f);
                rotateAnimation.setInterpolator(new LinearInterpolator());
                rotateAnimation.setDuration(1000);
                rotateAnimation.setFillAfter(true);
                arrow2.startAnimation(rotateAnimation);
        fromPosition=progress;                  
    }
        public void onStartTrackingTouch(SeekBar seekSize1) {}
        public void onStopTrackingTouch(SeekBar seekSize1) {}
});

1 个答案:

答案 0 :(得分:0)

我知道这个问题已经在很久以前发布了 - 但我一直在努力解决同样的问题,并想出了一个解决方案。您必须使用所谓的低通滤波器。这会滤除一些噪声,以及从传感器返回的“异常值”值。看看this