用android:rotation xml旋转一个按钮

时间:2015-01-01 04:54:48

标签: android

我想要一个按钮(作为图像)顺时针旋转以便用户界面。我不想旋转onClick按钮。只需在xml文件中旋转即可。 android:旋转对我不起作用。

我的代码是

<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Button" android:background="@drawable/button" android:rotation="-90" android:id="@+id/button" android:layout_gravity="right|left" android:layout_centerVertical="true" android:layout_centerHorizontal="true" />

3 个答案:

答案 0 :(得分:5)

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate android:fromDegrees="0"
    android:toDegrees="360"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="600"
    android:repeatMode="restart"
    android:repeatCount="infinite"
    android:interpolator="@android:anim/cycle_interpolator"/>

</set>

时钟明智 - 使用积极的toDegrees值

反时钟 - 使用负值至度值

答案 1 :(得分:1)

创建一个XML文件,假设是rotate.xml,并将其放在名为anim(在res中)的文件夹中

打开该文件并编写此代码:

<?xml version="1.0" encoding="UTF-8"?>
<rotate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0"
    android:toDegrees="360"
    android:pivotX="50%"
    android:interpolator="@android:anim/linear_interpolator"
    android:pivotY="50%"
    android:repeatCount="infinite" //you can change it according to the duration you want it ti rotate
    android:duration="1200" />

然后在你的代码中在OnCreate中执行此操作:

button.startAnimation( 
    AnimationUtils.loadAnimation(activity, R.anim.rotation) );

希望它有所帮助!

答案 2 :(得分:1)

您可以在按钮OnClick中使用以下代码旋转按钮: ObjectAnimator.ofFloat(v,&#34; rotation&#34;,0,360).start();
在这里,&#39; v&#39;是按钮视图。这是一个例子:

button.setOnClickListener(new View.OnClickListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                ObjectAnimator.ofFloat(v, "rotation", 0, 360).start();     
                return false;
            }
        });