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; } });
运行效果:
相关代码