2012-04-12 55 views
2

我正在创建一个自定义切换开关,我所有的设计和功能都做得最多,但有一件事情阻止了我,我试图添加动画切换到拇指基本上一个按钮向右的动画作品完美的,但问题是左边的动画是我用来播放动画的代码。问题与Android TranslateAnimation

private void playToggleanimation() 
    { 
     if(toggleAnimation != null && !toggleAnimation.hasEnded()) 
     { 
      toggleAnimation.setAnimationListener(null); 
      toggleAnimation.cancel(); 
     } 
     View v = findViewById(button); 
     toggleAnimation = (checked) ? new TranslateAnimation(v.getLeft(), getMeasuredWidth()/2, 0, 0) : new TranslateAnimation(v.getLeft(), 0, 0, 0); 
     toggleAnimation.setAnimationListener(listener); 
     toggleAnimation.setFillAfter(true); 
     toggleAnimation.setFillEnabled(true); 
     toggleAnimation.setDuration(250); 
     v.clearAnimation(); 
     v.startAnimation(toggleAnimation); 
    } 

感谢您的任何帮助。

+0

“向左问题与动画”这是什么?难道是运动或不运动? – 5hssba 2012-04-12 06:28:05

+0

它不是从现在的位置跳到另一个的动画 – Triode 2012-04-12 06:30:51

回答

2

我想通了这个问题是不是使用这条线

toggleAnimation = (checked) ? new TranslateAnimation(v.getLeft(), getMeasuredWidth()/2, 0, 0) : new TranslateAnimation(v.getLeft(), 0, 0, 0); 

我用下面的代码行创建动画与getLeft()方法,它工作得很好。

toggleAnimation = (checked) ? new TranslateAnimation(v.getLeft(), getMeasuredWidth()/2, 0, 0) : new TranslateAnimation(getMeasuredWidth()/2, 0, 0, 0); 

getLeft()方法总是返回0。