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 );


    } 


发布了201 篇原创文章 · 获赞 153 · 访问量 61万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 创作都市 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览