android图片渐隐渐现动画效果

    最近项目中需要用到一个过渡动画,就是一个图片渐隐渐现,然后重复五次后过渡动画消失,首先说下我的思路,一个timer,重复执行,然后执行的时候肯定要不断调用显示、隐藏动画。其中定时器每次重复的时间是动画显示(或隐藏)的时间


public class MainActivity extends ActionBarActivity {


    static int num = 0;//定义一个num来记录次数,就是来记录过渡动画的次数

    Timer timer;//定时器,重复执行动画

    private AlphaAnimation mHideAnimation= null;

    private AlphaAnimation mShowAnimation= null;

    static SeekBar seek; //显示和隐藏的图片

   

 @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);


seek = (SeekBar)findViewById(R.id.timeline_new);

seek.setProgress(20);

seek.setOnSeekBarChangeListener(seekListener);

seek.bringToFront();



  timer = new Timer();  

timer.schedule(new TimerTask() {  

         

        @Override  

        public void run() {  

            // TODO Auto-generated method stub  

                  Message message=new Message();  

                                  message.what=0;  

                              mHandler.sendMessage(message);  

        }  

    }, 50, 2000); 

 }


//涉及到ui操作,返回到主线程中操作

 private Handler mHandler = new Handler(){  

        @Override  

        public void handleMessage(Message msg) {  

            // TODO Auto-generated method stub  

            if(msg.what == 0){  

             ifnum % 2 != 0 ){

            setHideAnimation(seek,2000);

            

            }else{

            setShowAnimation(seek,2000);

            }

             

            num++;

            

            if(num>10){//重复次数够了以后,将num置回初始值,关闭定时器

num=0;

            timer.cancel();

            }

            

            }  

        }     

    };  


//渐渐隐藏动画

    private void setHideAnimation( View view, int duration ){


        if( null == view || duration < 0 ){


            return;

        }


        if( null != mHideAnimation ){


            mHideAnimation.cancel( );

        }

        mHideAnimation = new AlphaAnimation(1.0f, 0.0f);

        mHideAnimation.setDuration( duration );

        mHideAnimation.setFillAfter( true );

        view.startAnimation( mHideAnimation );

   }

    //渐渐显示动画

    private void setShowAnimation( View view, int duration ){


        if( null == view || duration < 0 ){


            return;

        }

        if( null != mShowAnimation ){


            mShowAnimation.cancel( );

        }

        mShowAnimation = new AlphaAnimation(0.0f, 1.0f);

        mShowAnimation.setDuration( duration );

        mShowAnimation.setFillAfter( true );

        view.startAnimation( mShowAnimation );


    } 


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值