一个简单的旋转动画

package com.example.test;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.RotateAnimation;
import android.widget.ImageView;

public class MainActivity extends Activity {

    private ImageView iv = null;

    private boolean show = true;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        iv = (ImageView) findViewById(R.id.iv);

        iv.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                Log.d("huang", "show===" + show);

                if (!show) {
                    startAnimationsIn(iv, 500);
                } else {
                    startAnimationsOut(iv, 500, 0);
                }
                show = !show;//交替替换上面的动作
            }
        });
    }

    protected void startAnimationsIn(ImageView iv2, int i) {

        iv2.setVisibility(0);
        iv2.setClickable(true);
        iv2.setFocusable(true);

        Animation animation;
        animation = new RotateAnimation(-180, 0, Animation.RELATIVE_TO_SELF,
                0.5f, Animation.RELATIVE_TO_SELF, 1.0f);
        animation.setFillAfter(true);
        animation.setDuration(i);
        iv2.startAnimation(animation);
    }

    protected void startAnimationsOut(final ImageView iv2, int i, int j) {
        Animation animation;
        animation = new RotateAnimation(0, -180, Animation.RELATIVE_TO_SELF,
                0.5f, Animation.RELATIVE_TO_SELF, 1.0f);
        animation.setFillAfter(true);
        animation.setDuration(i);
        animation.setStartOffset(j);// startOffset开始动画的时间

        animation.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation arg0) {
            }

            @Override
            public void onAnimationRepeat(Animation arg0) {
            }

            @Override
            public void onAnimationEnd(Animation arg0) {
                iv2.setVisibility(8);
                iv2.setVisibility(8);
                iv2.setClickable(true);
                iv2.setFocusable(true);

            }
        });
        iv2.startAnimation(animation);

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}

注意:show的使用,而不是将一个true或者false赋给它。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值