Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 不能';找不到值类型为float的按钮的setter属性旋转_Android_Android Animation_Nineoldandroids - Fatal编程技术网

Android 不能';找不到值类型为float的按钮的setter属性旋转

Android 不能';找不到值类型为float的按钮的setter属性旋转,android,android-animation,nineoldandroids,Android,Android Animation,Nineoldandroids,我使用NineodelDroids在用户单击按钮时旋转按钮。代码如下: Button btntest = (Button) findViewById(R.id.testbutton); btntest.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { ObjectAnimator.ofF

我使用NineodelDroids在用户单击按钮时旋转按钮。代码如下:

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
我花了很多时间寻找,但在这里我没有找到任何解决办法。 请帮帮我


谢谢。

编辑:ObjectAnimator从API 11级开始提供。您的设备是API级别9。尝试在至少使用安卓3.0+的设备上运行代码

编辑:ObjectAnimator自API级别11起可用。您的设备是API级别9。尝试在至少使用安卓3.0+的设备上运行代码

也许视图还没有准备好


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

可能视图还没有准备好


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

您可以尝试使用ObjectAnimator(带有浮点变量)替换所有PropertyValuesHolder,答案如下

或者,您可能希望尝试下面的旋转动画:

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

rotate\u animation.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>
然后,当用户单击按钮时,在按钮中使用rotate()动画

Button btntest = (Button) findViewById(R.id.testbutton);
    btntest.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            v.startAnimation(rotate());
        }
    });

根据这里的答案,您可以尝试使用ObjectAnimator(使用浮点变量)替换所有PropertyValuesHolder

或者,您可能希望尝试下面的旋转动画:

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

rotate\u animation.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>
然后,当用户单击按钮时,在按钮中使用rotate()动画

Button btntest = (Button) findViewById(R.id.testbutton);
    btntest.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            v.startAnimation(rotate());
        }
    });

最后,我找到了我的根本原因。我使用的是
nineolandroid
ActionbarSherlock
。然后,因为
ActionbarSherlock
已经包含了Nineodeldroid的一部分,所以我导入了
com.ActionbarSherlock.internal.nineodeldroids.animation.ObjectAnimator
,而不是
com.nineodeldroids.animation.ObjectAnimator


nineolandroid
在所有android SDK版本上都能正常工作。

最后,我找到了根本原因。我使用的是
nineolandroid
ActionbarSherlock
。然后,因为
ActionbarSherlock
已经包含了Nineodeldroid的一部分,所以我导入了
com.ActionbarSherlock.internal.nineodeldroids.animation.ObjectAnimator
,而不是
com.nineodeldroids.animation.ObjectAnimator


nineodeldroid
适用于所有android SDK版本。

找不到值类型为float的按钮的setter属性translationX
。不太管用。我正在Htc desire-android 2.3上测试我的应用程序。
ObjectAnimator
从API 11级开始提供。您的设备是API级别9。尝试在至少具有Android 3.0+
的设备上运行代码。无法找到值类型为float的按钮的setter属性translationX。不太管用。我正在Htc desire-android 2.3上测试我的应用程序。
ObjectAnimator
从API 11级开始提供。您的设备是API级别9。尝试在至少使用安卓3.0+的设备上运行代码查看我的更新答案查看我的更新答案