Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16940
  • 博文数量: 22
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 300
  • 用 户 组: 普通用户
  • 注册时间: 2015-10-07 10:58
个人简介

android开发

文章分类

全部博文(22)

文章存档

2015年(22)

我的朋友

分类: Android平台

2015-10-29 17:37:41

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;
            }
        });

运行效果:

相关代码

阅读(260) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~