Android按钮动画旋转180度

时间:2016-05-10 12:22:00

标签: android

我有一个简单的android项目,它是一个空白活动页面,中间有一个按钮。我希望当我点击按钮时它旋转180度(如图像匹配游戏,单击按钮返回和背景显示)。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/activity_main" tools:context=".MainActivity">
<Button
    android:layout_width="400px"
    android:layout_height="400px"
    android:id="@+id/btn_play"
    android:layout_marginTop="174dp"
    android:background="#001eff"
    android:layout_centerHorizontal="true" />

对不起我的英语不好和我的简单问题。

感谢。

2 个答案:

答案 0 :(得分:0)

尝试实施旋转动画

在res / anim文件夹中创建rotation.xml:

<rotate xmlns:android="”http://schemas.android.com/apk/res/android”">
  android:duration="4000"
  android:fromdegrees="0"
  android:pivotx="50%"
  android:pivoty="50%"
  android:todegrees="180"
  android:toyscale="0.0"
</rotate>

在按钮上的活动中点击:

  btn.setOnClickListener(new OnClickListener()    {
            @Override
            public void onClick(View arg0) {
               final Animation animation= AnimationUtils.loadAnimation(getApplicationContext(), R.anim.rotator);


                       animation.setAnimationListener(new Animation.AnimationListener() {
                           @Override
                           public void onAnimationStart(Animation animation) {
                             btn.startAnimation(animation); 
                           }

                           @Override
                           public void onAnimationEnd(Animation animation) {
                               btn.setBackgroundResource(R.drawable.anotherImage);
                           }

                           @Override
                           public void onAnimationRepeat(Animation animation) {

                           }
                       });


                   }
            }
        });

答案 1 :(得分:0)

您可以使用ObjectAnimator

btn_play.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view)
            {
            ObjectAnimator.ofFloat(view, "rotation", 0, 180).start();
            btn_play.setBackgroundColor(Color.RED)
            }
        });