我正在创建一个自定义切换开关我最完成的设计和功能,但有一件事阻止我,我试图添加动画切换到拇指基本上一个按钮动画朝右的工作完美但问题这是左边的动画是我用来播放两个动画的代码。
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 :(得分:2)
我认为问题在于getLeft()
方法,而不是使用此行
toggleAnimation = (checked) ? new TranslateAnimation(v.getLeft(), getMeasuredWidth() / 2, 0, 0) : new TranslateAnimation(v.getLeft(), 0, 0, 0);
我使用下面的代码行来创建动画,它工作正常。
toggleAnimation = (checked) ? new TranslateAnimation(v.getLeft(), getMeasuredWidth() / 2, 0, 0) : new TranslateAnimation(getMeasuredWidth() / 2, 0, 0, 0);
getLeft()
方法始终返回0.