常用动画集锦

来源:互联网 发布:miui8免费网络短信 编辑:程序博客网 时间:2024/05/04 07:50

一、显示隐藏布局:

private void showHideLayout(final LinearLayout ll_hide)    {        ll_hide.setVisibility(View.VISIBLE);        int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 110, getResources().getDisplayMetrics());        ValueAnimator animator = ValueAnimator.ofInt(0, height);        animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {            @Override            public void onAnimationUpdate(ValueAnimator animation) {                int value = (int) animation.getAnimatedValue();                Log.e(TAG, "value : " + value);                ViewGroup.LayoutParams params = ll_hide.getLayoutParams();                params.height = value;                ll_hide.setLayoutParams(params);            }        });        animator.setDuration(500);        animator.start();    }

二、计时器(也可倒计时):

private void showTime(final TextView timeTxt)    {        // 前面参数比后面参数大则为倒计时        ValueAnimator valueAnimator = ValueAnimator.ofInt(30, 1);        valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {            @Override            public void onAnimationUpdate(ValueAnimator animation) {                timeTxt.setText(animation.getAnimatedValue().toString());            }        });        valueAnimator.setDuration(30000);        valueAnimator.setInterpolator(new LinearInterpolator());        valueAnimator.start();    }

三、自定义动画(重写applyTransformation方法):

class CusAnimation extends Animation    {        @Override        protected void applyTransformation(float interpolatedTime, Transformation t)        {            super.applyTransformation(interpolatedTime, t);            Matrix matrix = t.getMatrix();            matrix.preScale(1, 1-interpolatedTime, beauty.getWidth()/2, beauty.getHeight()/2);        }    }
1 0
原创粉丝点击