zoukankan      html  css  js  c++  java
  • SnackBar动画

        void animateViewIn() {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
                ViewCompat.setTranslationY(mView, mView.getHeight());
                ViewCompat.animate(mView)
                        .translationY(0f)
                        .setInterpolator(FAST_OUT_SLOW_IN_INTERPOLATOR)
                        .setDuration(ANIMATION_DURATION)
                        .setListener(new ViewPropertyAnimatorListenerAdapter() {
                            @Override
                            public void onAnimationStart(View view) {
                                mView.animateChildrenIn(ANIMATION_DURATION - ANIMATION_FADE_DURATION,
                                        ANIMATION_FADE_DURATION);
                            }
    
                            @Override
                            public void onAnimationEnd(View view) {
                                onViewShown();
                            }
                        }).start();
            } else {
                Animation anim = AnimationUtils.loadAnimation(mView.getContext(),
                        R.anim.design_snackbar_in);
                anim.setInterpolator(FAST_OUT_SLOW_IN_INTERPOLATOR);
                anim.setDuration(ANIMATION_DURATION);
                anim.setAnimationListener(new Animation.AnimationListener() {
                    @Override
                    public void onAnimationEnd(Animation animation) {
                        onViewShown();
                    }
    
                    @Override
                    public void onAnimationStart(Animation animation) {}
    
                    @Override
                    public void onAnimationRepeat(Animation animation) {}
                });
                mView.startAnimation(anim);
            }
        }
    

       

    SnackbarManager类
        private void scheduleTimeoutLocked(SnackbarRecord r) {
            if (r.duration == Snackbar.LENGTH_INDEFINITE) {
                // If we're set to indefinite, we don't want to set a timeout
                return;
            }
    
            int durationMs = LONG_DURATION_MS;
            if (r.duration > 0) {
                durationMs = r.duration;
            } else if (r.duration == Snackbar.LENGTH_SHORT) {
                durationMs = SHORT_DURATION_MS;
            }
            mHandler.removeCallbacksAndMessages(r);
            mHandler.sendMessageDelayed(Message.obtain(mHandler, MSG_TIMEOUT, r), durationMs);
        }
        private static final int SHORT_DURATION_MS = 1500;
        private static final int LONG_DURATION_MS = 2750;
  • 相关阅读:
    一意孤行
    叶子书签
    漫舞
    男朋友
    ubuntu自动关机命令,ubuntu 无法关机解决方法
    情人节
    生死由天
    春暖花开
    android开发学习中的问题:error: device not found解决办法
    暗恋
  • 原文地址:https://www.cnblogs.com/huyang011/p/7447064.html
Copyright © 2011-2022 走看看