gpt4 book ai didi

java - Android - 关于为两个独立动画更有效地编写我的递归方法的建议

转载 作者:行者123 更新时间:2023-11-30 03:06:43 24 4
gpt4 key购买 nike

我是 Java 和 Android 编程的新手,正在通过 Coursera 学习这方面的类(class)。我的应用程序有两个上下动画的图像。现在,我已经达到了让两个图像反复动画在一起的程度。我得到了帮助,并编写了一个递归方法让它们重复动画,直到 pleaseStop boolean 标志被更改。

我希望他们独立行动。 与其编写两个 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);

最佳答案

传一个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 传递适当的间隔值(value)。

喜欢

stepRecursive(true,intervalForLeft);
stepRecursive(false,intervalForRight);

关于java - Android - 关于为两个独立动画更有效地编写我的递归方法的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21695946/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com