我是Java和Android编程的新手,并通过Coursera学习这门课程。我的应用程序有两个上下动画的图像。现在,我已经得到了两个图像反复动画在一起。我得到了帮助并编写了一个递归方法,让它们重复动画,直到更改了pleaseStop布尔标志。
我希望他们独立行动。 如何编写两个stepRecursive方法,如何只编写一个?
我在这里设置并运行动画。
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);
答案 0 :(得分:1)
通过boolean
方法传递一个stepRecursive()
变量,并根据View
值确定哪个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);
}
并且在调用此方法时,根据boolean
值传递适当的间隔。
像
stepRecursive(true,intervalForLeft);
stepRecursive(false,intervalForRight);