记录-无限位移动画

119 阅读1分钟
private void initAnimator() {
    AnimationSet animationSet = new AnimationSet(true);
    TranslateAnimation translateAnimation = new TranslateAnimation(
            //X轴初始位置
            Animation.RELATIVE_TO_SELF, 0.0f,
            //X轴移动的结束位置
            Animation.RELATIVE_TO_SELF, 0.0f,
            //y轴开始位置
            Animation.RELATIVE_TO_SELF, 0.0f,
            //y轴移动后的结束位置
            Animation.RELATIVE_TO_SELF, 0.5f);

    //1秒完成动画
    translateAnimation.setDuration(1000);
    translateAnimation.setAnimationListener(new ReStartAnimationListener());
    //如果fillAfter的值为真的话,动画结束后,控件停留在执行后的状态
    animationSet.setFillAfter(true);
    //将AlphaAnimation这个已经设置好的动画添加到 AnimationSet中
    animationSet.addAnimation(translateAnimation);
    //启动动画
    iv_prompt1.startAnimation(animationSet);
    iv_prompt2.startAnimation(animationSet);
    iv_prompt3.startAnimation(animationSet);
    iv_prompt4.startAnimation(animationSet);
    iv_prompt5.startAnimation(animationSet);
}

/**
 * 重复启动动画
 */
private class ReStartAnimationListener implements Animation.AnimationListener {

    public void onAnimationEnd(Animation animation) {
        // TODO Auto-generated method stub
        animation.reset();
        animation.setAnimationListener(new ReStartAnimationListener());
        animation.start();
    }

    public void onAnimationRepeat(Animation animation) {
        // TODO Auto-generated method stub

    }

    public void onAnimationStart(Animation animation) {
        // TODO Auto-generated method stub

    }

}