1

当用户单击按钮时,我正在使用 NineOldAndroids 旋转按钮。以下是代码:

Button btntest = (Button) findViewById(R.id.testbutton);
        btntest.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                ObjectAnimator.ofFloat(v, "rotation", 0f, 360f).start();
            }
        });

当我点击按钮时,它会将这个日志扔到 logcat 中:

10-24 05:25:42.394: E/PropertyValuesHolder(2387): Couldn't find setter property rotation for Button with value type float

我进行了很多搜索,但在这里没有找到任何解决方案。请帮我。

谢谢。

4

4 回答 4

1

编辑: ObjectAnimator 从API 级别 11开始可用。您的设备是API 级别 9。尝试在至少具有 Android 3.0+ 的设备上运行您的代码。

于 2013-10-24T08:50:17.587 回答
1

最后,我找到了我的根本原因。我同时使用NineOldAndroidsActionbarSherlock。然后,因为ActionbarSherlock已经包含了 NineOldAndroids 的一部分,所以我导入com.actionbarsherlock.internal.nineoldandroids.animation.ObjectAnimatorcom.nineoldandroids.animation.ObjectAnimator.

NineOldAndroids适用于所有 android SDK 版本。

于 2013-10-30T04:34:54.137 回答
1

您可以尝试按照此处的答案将所有 PropertyValuesHolder 替换为 ObjectAnimator (with float vars) PropertyValuesHolder: Couldn't find setter/getter for property alpha with value type float

或者您可能想尝试下面的旋转动画:

在 res/drawable/anim 中创建一个动画 XML

旋转动画.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >

<rotate
    android:duration="800"
    android:interpolator="@android:anim/linear_interpolator"
    android:pivotX="50%"
    android:pivotY="50%"
    android:repeatCount="infinite"
    android:repeatMode="restart"
    android:toDegrees="360" />
</set>

创建旋转动画。

private Animation rotate() {
    Animation animation = AnimationUtils.loadAnimation(NameOfActivity.this, R.anim.rotate_animation);
    return animation;
}

然后,当用户单击它时,在您的按钮中使用 rotate() 动画。

Button btntest = (Button) findViewById(R.id.testbutton);
    btntest.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            v.startAnimation(rotate());
        }
    });
于 2013-10-24T09:22:35.457 回答
1

也许视图还没有准备好?

这些代码在我的设备(4.3,Nexus4)上运行良好。

于 2013-10-24T08:57:24.560 回答