如何不停旋转按钮

时间:2016-03-22 12:22:13

标签: android

 while(true){
        if(Togglebutton1.isChecked()) {
            button2.setRotation(button2.getRotation() + 5);
        else{
            button2.setRotation(button2.getRotation() - 5);
        }
    }

它不起作用。 按钮2在300毫秒

2 个答案:

答案 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);