Java Android-关于为两个独立动画更有效地编写递归方法的建议
我是Java和Android编程新手,通过Coursera学习这方面的课程。我的应用程序有两个上下动画图像。现在,我已经把这两个图像反复地放在一起。我得到了帮助,并编写了一个递归方法,让它们重复设置动画,直到更改pleaseStop布尔标志 我希望他们能独立行动与其编写两步递归方法,还不如只编写一步递归方法? 这里是我设置和运行动画的地方Java Android-关于为两个独立动画更有效地编写递归方法的建议,java,android,animation,recursion,Java,Android,Animation,Recursion,我是Java和Android编程新手,通过Coursera学习这方面的课程。我的应用程序有两个上下动画图像。现在,我已经把这两个图像反复地放在一起。我得到了帮助,并编写了一个递归方法,让它们重复设置动画,直到更改pleaseStop布尔标志 我希望他们能独立行动与其编写两步递归方法,还不如只编写一步递归方法? 这里是我设置和运行动画的地方 mHandler = new Handler(); // .os package class when importing mLeftfoo
mHandler = new Handler(); // .os package class when importing
mLeftfoot = findViewById(R.id.leftfoot);
mRightfoot = findViewById(R.id.rightfoot);
mFootAnim = AnimationUtils.loadAnimation(this, R.anim.foot); //this looks to the foot.xml file for the animations
stepRecursive();
这是我的递归方法。请注意mInterval。我希望mLeftfoot和mRightfoot在他们自己的mInterval跑步。
private void stepRecursive() {
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
mLeftfoot.startAnimation(mFootAnim);
mRightfoot.startAnimation(mFootAnim);
if (!pleaseStop)
stepRecursive();
}
}, mInterval);
通过
stepRecursive()
方法传递一个boolean
变量,并根据该boolean
值决定哪个视图必须设置动画
private void stepRecursive(final boolean isLeftFoot,final int mInterval) {
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
if (isLeftFoot) {
mLeftfoot.startAnimation(mFootAnim);
} else {
mRightfoot.startAnimation(mFootAnim);
}
if (!pleaseStop)
stepRecursive(isLeftFoot,mInterval);
}
}, mInterval);
}
调用此方法时,根据布尔值传递适当的间隔
像
非常接近!记住,我需要mLeftfoot和mRightfoot在不同的mInterval跑步。这不是一个或另一个。它们都是动画,只是间隔不同。我不需要两个Minterval吗?mLeftInterval和mRightInterval?另外,你能用你的答案更新代码吗?谢谢
stepRecursive(true,intervalForLeft);
stepRecursive(false,intervalForRight);