分类: Android平台
2015-10-29 17:37:41
,本项目主要学习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;
}
});