当前位置:   article > 正文

DrawerLayout 添加自定义动画_drawerlayout 动画时间

drawerlayout 动画时间

1.将drawerlayout 的shadow (阴影去掉)

drawerlayout.setScrimColor(Color.TRANSPARENT);

2.修改动画

原动画是通过viewdraghelper-scroller 来实现的 时间 = 距离/速度;

如果要改原本的动画 要重写 ViewDragCallback 自己替换里面drager

我是直接通过listener 来改的

  1. public class CustomDrawerListener implements VerticalDrawerLayout.VerticalDrawerListener {
  2. @Override
  3. public void onVerticalDrawerSlide(View drawerView, float slideOffset) {
  4. animZoom(drawerView, slideOffset);
  5. }
  6. @Override
  7. public void onVerticalDrawerOpened(View drawerView) {
  8. }
  9. @Override
  10. public void onVerticalDrawerClosed(View drawerView) {
  11. }
  12. @Override
  13. public void onVerticalDrawerStateChanged(int newState) {
  14. }
  15. private void animStandup(View target, float slideOffset) {
  16. float x = (target.getWidth() - target.getPaddingLeft() - target.getPaddingRight()) / 2
  17. + target.getPaddingLeft();
  18. float y = target.getHeight() - target.getPaddingBottom();
  19. target.setPivotX(x);
  20. target.setPivotY(y);
  21. target.setRotationX(90 * (1 - slideOffset));
  22. }
  23. private void animZoom(View target, float slideOffset) {
  24. target.setPivotX(0);
  25. target.setPivotY(target.getPaddingBottom());
  26. target.setScaleX(slideOffset);
  27. target.setScaleY(slideOffset);
  28. target.setAlpha(slideOffset * 255);
  29. target.setTranslationY(slideOffset);
  30. }
  31. }

直接实现drawelistener在scroller平移的同时添加了其他属性的变化

3.属性动画用不明白的第三方动画库 看看里面已有的动画会有很多启发

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/279456
推荐阅读
  

闽ICP备14008679号