android属性动画--场景过过渡动画
来源:互联网 发布:个人备案域名出售 编辑:程序博客网 时间:2024/06/05 02:50
当从一个布局切换到另一个布局时的动画,先看效果:
当从scene1切换到其他scenc时候,可以设置动画,代码:
/* * Copyright (C) 2013 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package com.example.android.apis.animation;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.transition.Scene;import android.transition.TransitionInflater;import android.transition.TransitionManager;import com.example.android.apis.R;/** * This application demonstrates some of the capabilities and uses of the * {@link android.transition transitions} APIs. Scenes and a TransitionManager * are loaded from resource files and transitions are run between those scenes * as well as a dynamically-configured scene. */public class Transitions extends Activity {//控制过度效果 Scene mScene1, mScene2, mScene3; ViewGroup mSceneRoot; TransitionManager mTransitionManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.transition); mSceneRoot = (ViewGroup) findViewById(R.id.sceneRoot); TransitionInflater inflater = TransitionInflater.from(this); // Note that this is not the only way to create a Scene object, but that // loading them from layout resources cooperates with the // TransitionManager that we are also loading from resources, and which // uses the same layout resource files to determine the scenes to transition // from/to. mScene1 = Scene.getSceneForLayout(mSceneRoot, R.layout.transition_scene1, this); mScene2 = Scene.getSceneForLayout(mSceneRoot, R.layout.transition_scene2, this); mScene3 = Scene.getSceneForLayout(mSceneRoot, R.layout.transition_scene3, this); mTransitionManager = inflater.inflateTransitionManager(R.anim.transitions_mgr, //过渡的动画在transitions_mgr中 mSceneRoot); } public void selectScene(View view) { switch (view.getId()) { case R.id.scene1: mTransitionManager.transitionTo(mScene1);//切换到scenc1 break; case R.id.scene2: mTransitionManager.transitionTo(mScene2);//切换到scenc2 break; case R.id.scene3: mTransitionManager.transitionTo(mScene3);//切换到scenc4 break; case R.id.scene4://切换到scenc4 // scene4 is not an actual 'Scene', but rather a dynamic change in the UI, // transitioned to using beginDelayedTransition() to tell the TransitionManager // to get ready to run a transition at the next frame TransitionManager.beginDelayedTransition(mSceneRoot); setNewSize(R.id.view1, 150, 25); setNewSize(R.id.view2, 150, 25); setNewSize(R.id.view3, 150, 25); setNewSize(R.id.view4, 150, 25); break; } } private void setNewSize(int id, int width, int height) { View view = findViewById(id); ViewGroup.LayoutParams params = view.getLayoutParams(); params.width = width; params.height = height; view.setLayoutParams(params); }}
相应的布局文件transition.xml:
<?xml version="1.0" encoding="utf-8"?><!-- Copyright (C) 2013 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.--><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <RadioGroup android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <RadioButton android:id="@+id/scene1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:onClick="selectScene" android:text="Scene 1" /> <RadioButton android:id="@+id/scene2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="selectScene" android:text="Scene 2" /> <RadioButton android:id="@+id/scene3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="selectScene" android:text="Scene 3" /> <RadioButton android:id="@+id/scene4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="selectScene" android:text="Scene 4" /> </RadioGroup> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/sceneRoot"> <include layout="@layout/transition_scene1"/> </LinearLayout></LinearLayout>
<?xml version="1.0" encoding="utf-8"?><!-- Copyright (C) 2013 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.--><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/container"> <View android:layout_width="100dip" android:layout_height="50dip" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:background="#f00" android:id="@+id/view1"/> <View android:layout_width="100dip" android:layout_height="50dip" android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:background="#0f0" android:id="@+id/view2"/> <View android:layout_width="100dip" android:layout_height="50dip" android:background="#00f" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:id="@+id/view3"/> <View android:layout_width="100dip" android:layout_height="50dip" android:background="#0ff" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:id="@+id/view4"/></RelativeLayout>
transition_scene3.xml
<?xml version="1.0" encoding="utf-8"?><!-- Copyright (C) 2013 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.--><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/container"> <View android:layout_width="100dip" android:layout_height="50dip" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:background="#f00" android:id="@+id/view1"/> <View android:layout_width="100dip" android:layout_height="50dip" android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:background="#0f0" android:id="@+id/view2"/> <View android:layout_width="100dip" android:layout_height="50dip" android:background="#00f" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:id="@+id/view3"/> <View android:layout_width="100dip" android:layout_height="50dip" android:background="#0ff" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:id="@+id/view4"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:orientation="vertical" android:id="@+id/grayscaleContainer"> <View android:layout_width="match_parent" android:layout_height="10dip" android:background="#000" android:id="@+id/gray1"/> <View android:layout_width="match_parent" android:layout_height="10dip" android:background="#222" android:id="@+id/gray2"/> <View android:layout_width="match_parent" android:layout_height="10dip" android:background="#444" android:id="@+id/gray3"/> <View android:layout_width="match_parent" android:layout_height="10dip" android:background="#666" android:id="@+id/gray4"/> <View android:layout_width="match_parent" android:layout_height="10dip" android:background="#888" android:id="@+id/gray5"/> <View android:layout_width="match_parent" android:layout_height="10dip" android:background="#aaa" android:id="@+id/gray6"/> <View android:layout_width="match_parent" android:layout_height="10dip" android:background="#ccc" android:id="@+id/gray7"/> <View android:layout_width="match_parent" android:layout_height="10dip" android:background="#fff" android:id="@+id/gray8"/> </LinearLayout></RelativeLayout>
过渡动画管理transitions_mgr.xml:
<?xml version="1.0" encoding="utf-8"?><!-- Copyright (C) 2013 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.--><!-- BEGIN_INCLUDE(TransitionManager) --><transitionManager xmlns:android="http://schemas.android.com/apk/res/android"> <transition android:fromScene="@layout/transition_scene1" android:toScene="@layout/transition_scene2" android:transition="@anim/changebounds"/> <transition android:fromScene="@layout/transition_scene2" android:toScene="@layout/transition_scene1" android:transition="@anim/changebounds"/> <transition android:toScene="@layout/transition_scene3" android:transition="@anim/changebounds_fadein_together"/> <transition android:fromScene="@layout/transition_scene3" android:toScene="@layout/transition_scene1" android:transition="@anim/changebounds_fadeout_sequential"/> <transition android:fromScene="@layout/transition_scene3" android:toScene="@layout/transition_scene2" android:transition="@anim/changebounds_fadeout_sequential"/></transitionManager><!-- END_INCLUDE(TransitionManager) -->上面列出了从某某场景切换到另一个场景时的动画
0 0
- android属性动画--场景过过渡动画
- 场景动画切换过渡大全
- android 动画 过渡动画 transition
- Android之过渡动画
- Android之过渡动画
- CSS3-过渡属性,CSS3-动画
- 动画--过渡属性 transition-property
- [cocos2d-x]场景动画切换过渡大全
- [cocos2d-x]场景动画切换过渡大全
- cocos2d-x 场景动画切换过渡大全
- cocos2d-x 场景动画切换过渡大全
- SpriteKit:在场景过渡中暂停动画
- Android动画--属性动画
- android动画 -- 属性动画
- Android动画-属性动画
- Android动画【属性动画】
- Android动画--属性动画
- Android动画--Activity过渡动画 Transition
- CentOS7安装Mysql5.6
- poj 1014 Dividing(简单dp)
- 抽象工厂模式(Abstract Factory)
- 从一道面试题目获得的心得体会
- org.hibernate.TransientObjectException: object references an unsaved transient instance
- android属性动画--场景过过渡动画
- Spring task 执行两次解决方法
- 个人网站:http://mingz.me
- 用jquery 绑定一个按钮click事件后,第一次点击后,一切正常,第二次点击,竟然执行两次,以后越来越多
- fds
- Android实战技巧:深入解析AsyncTask
- CentOS安装配置Hadoop 1.2.1(伪分布模式)
- 计算机专业经典书籍(汇总)
- android 显示意图的笔记