2012-04-12 56 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。