while(true){
if(Togglebutton1.isChecked()) {
button2.setRotation(button2.getRotation() + 5);
else{
button2.setRotation(button2.getRotation() - 5);
}
}
它不起作用。 按钮2在300毫秒
答案 0 :(得分:1)
您不应尝试为此观看动画。第一个问题是它阻止了UI线程,并且不会更新。第二个问题是你不允许android执行它自己的优化。
您应该使用以下内容:
Animation anim = new Animation() {
protected void applyTransformation(float interpolatedTime, Transformation t) {
super.applyTransformation(interpolatedTime, t);
button2.setRotation(360 * interpolatedTime);
}
};
anim.setRepeatCount(Animation.INFINITE);
anim.setDuration(500);
button2.startAnimation(anim);
这不适合button1
切换。应该将一个监听器添加到停止动画的按钮,并在另一个方向上启动一个新的监听器。
答案 1 :(得分:1)
您可以创建旋转动画:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<rotate
android:duration="1500"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="infinite"
android:toDegrees="360"/>
</set>
并按以下方式应用:
Animation rotation = AnimationUtils.loadAnimation(this, R.anim.rotation);
button.startAnimation(rotation);