我正在尝试旋转图片。我写了我的功能来检查图像中的旋转速度。在逻辑中一切正常但我使用runnable并且setrotate
方法只运行一次。
这是我的来源:
public void rotateimages() {
myHandler = new Handler();
runnable = new Runnable() {
@Override
public void run() {
double k = 30;
double speed = Math.PI / k;
for (alpa = 0; alpa < (Math.PI * 6 + res * 2 * Math.PI / 5); alpa += speed) {
latcirclelayout.setRotation(latcirclelayout.getRotation()
- ((float) alpa));
k = Math.min(k + 0.2, 240);
speed = Math.PI / k;
}
}
};
myHandler.postDelayed(runnable, 100);
}
我调试了它,每次更改alpha值但旋转只运行一次。 我做错了什么?
答案 0 :(得分:0)
你的循环只是一个紧凑的循环 - 你一次性执行所有的迭代,基本上,多次调用setRotation
。我强烈怀疑所有拨打setRotation
的电话都是 ......但你除了最后一个电话之外什么都没看到。如果您想将此代码用于动画,则需要重复执行代码 - 但每次迭代只需调用setRotation
一次。
你可以通过在循环的每次迭代中添加一个日志条目来检查 - 我确定你会发现它会非常快速地执行所有的迭代。
(我怀疑Android中可能还有其他内容可以使动画比这更简单,但我不能随便了解。animation tutorial可能对你很有帮助。)