Scene(场景)的使用
来源:互联网 发布:adobe xd for mac 编辑:程序博客网 时间:2024/06/05 12:43
Scene(场景)的使用
android 在transition动画中提出一个概念叫做场景,什么叫做场景?场景就是一个布局或部分布局,我们可以使用场景来创建动画。需要运行在5.0以上
示例代码:
//确定好舞台的父控件 需要移动的地方content = (RelativeLayout) findViewById(R.id.content);//把场景实例出来//把需要动画的对象设置相同的id,两个场景根据开始和结束的位置,系统会自动的计算出动画了if(Build.VERSION.SDK_INT>=19){ //创建出2个场景 one = Scene.getSceneForLayout(content,R.layout.activity_scence,this); two = Scene.getSceneForLayout(content,R.layout.activity_scence2,this);}
//移动场景public void gotoTwo(View view){ if(Build.VERSION.SDK_INT>=19){ TransitionManager.go(two,new ChangeBounds()); }}public void backtoOne(View view){ if(Build.VERSION.SDK_INT>=19){ TransitionManager.go(one,new ChangeBounds()); }}
3 延迟场景变化,TransitionManager就会根据场景变化自动执行动画
TransitionManager.beginDelayedTransition(Viewgroup group)
Transition(变化)
监听一个容器内部有控件的状态发生改变后执行的动画
一个有四种动画效果:
- Slide 划入
- Explode 爆炸
- Fade 隐藏
- changeBounds 位置与大小变化
示例代码:
TransitionManager.beginDelayedTransition(recyle, //开始监听的父容器new Slide(Gravity.RIGHT)); //开始划入划出的动画 可以设置方向
Explode explode = new Explode(); //创建动画 explode.setDuration(1000); //设置动画的时间TransitionManager.beginDelayedTransition(recyle,explode); //开始监听动画
Activity跳转的动画
在代码中设置可以动画,只有在21版本后可以使用:
Transition 与 Activity的跳转动画有以下几个
- setEnterTransition 进入的动画
- setExitTransition 退出的动画
- setReturnTransition 返回的动画
setReenterTransition 重入的动画
示例代码(在代码中定义动画):
//进行版本控制if (Build.VERSION.SDK_INT >=21){ Slide slide = new Slide(Gravity.RIGHT); //创建动画 getWindow().setExitTransition(slide); //设置界面退出是动画 //开启允许transition切换 getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);}
在界面跳转时执行一个动画
//按照这个格式来写ActivityCompat.startActivity(this,intent,ActivityOptions.makeSceneTransitionAnimation(this).toBundle()); //执行设置的退出时动画
- 在Xml中定义的动画:
在资源文件中创建transition的文件夹.
<?xml version="1.0" encoding="utf-8"?><transitionSet xmlns:android="http://schemas.android.com/apk/res/android"> <explode/> //设置动画 <fade/></transitionSet>
//进行版本控制if (Build.VERSION.SDK_INT >=21){ //引入Xml中设置的动画 TransitionInflater inflater = TransitionInflater.from(this); //加载动画 Transition transition = inflater.inflateTransition(R.transition.one); //设置动画 getWindow().setExitTransition(transition); //开启允许transition切换 getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);}
在界面跳转时同上设置跳转.
阅读全文
0 0
- Scene(场景)的使用
- Scene场景切换与scheduler的使用
- 使用 Scene 类在 XNA 中创建不同的场景(八)
- 使用 Scene 类在 XNA 中创建不同的场景(八)
- android 场景转换Scene配合动画的使用
- 【coco2dx场景Scene的生命周期】
- Scene---场景的异步加载
- 场景Scene
- Ogre读取Ogitor的scene场景简介
- Ogre读取Ogitor的scene场景简介
- Ogre读取Ogitor的scene场景简介
- Digital Scene mode /数码相机的场景模式
- cocos2d-x scene场景的切换
- [cocos2d-x 学习] Scene(场景)学习
- 关于Unity3d发布后Scene场景的设置(代码控制)
- 【v2.x OGE教程 13】 Scene场景使用
- JavaFX Scene Builder的使用
- cocos2d Scene场景转换
- CountDownLatch 源码分析
- MTK编译笔记1
- 【Python】遍历文件夹中所有文件
- 计算机网络实验ethereal
- C# 线程控制
- Scene(场景)的使用
- Activity#finish() 对其生命周期的影响
- Intellij idea項目中无法创建scala class的解决办法
- OkHttp3的使用
- JavaScript 基础1
- [week 8][Leetcode][Dynamic Programming] Maximum Subarray
- 波纹动画
- Java并发编程基础
- Semaphore 源码分析