当前位置: 主页 > 开源代码 >

android 过渡动画研究

分享

介绍:

android 过渡动画研究,本项目主要学习android4.4以及以上推出的动画实现特效,主要包括两个方面动画
(1)Trasition是4.4推出的   (2)Android的框架层新增了ViewDragHelper这么一个类,官方的DrawerLayout通过它来实现的,
分别简单介绍一下:
a:Android的框架层新增了ViewDragHelper这么一个类,官方的DrawerLayout就是通过它来实现的。 ViewDragHelper是一个『拖拽控制器』,使用它可以用很少的代码实现很流畅的拖拽效果。Android在触摸这一块终于又进了一步。


b:Trasition是4.4推出的,中文名字是:过渡动画,使用它可以做出各种界面变化后的过渡效果。 Transition内部是对多个属性动画的封装,实现原理是通过记录View的初始状态和结束状态,然后通过属性动画进行播放

这个项目是自己对ViewDragHelper与Transition的一个小练习。

下面部分代码如下:

  final DragLayout mDragLayout = (DragLayout) findViewById(R.id.drag_layout);
        mDragLayout.setOnDragListener(this);
        mDragLayout.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
            @Override
            public boolean onPreDraw() {
                mDragLayout.getViewTreeObserver().removeOnPreDrawListener(this);


                TransitionManager.beginDelayedTransition(mSceneRoot, mTransitionPlayer);
                ViewGroup.MarginLayoutParams marginParams = (ViewGroup.MarginLayoutParams) mHeadImg.getLayoutParams();
                marginParams.topMargin = 0;
                mHeadImg.setLayoutParams(marginParams);
                mHeadImg.setAlpha(1.0f);

                mHeadImg.post(new Runnable() {
                    @Override
                    public void run() {
                        mTransitionPlayer.setCurrentFraction(1.0f);

                    }
                });
                return false;
            }
        });

运行效果: