1faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase/*
2faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase * Copyright (C) 2013 The Android Open Source Project
3faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase *
4faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase * Licensed under the Apache License, Version 2.0 (the "License");
5faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase * you may not use this file except in compliance with the License.
6faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase * You may obtain a copy of the License at
7faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase *
8faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase *      http://www.apache.org/licenses/LICENSE-2.0
9faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase *
10faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase * Unless required by applicable law or agreed to in writing, software
11faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase * distributed under the License is distributed on an "AS IS" BASIS,
12faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase * See the License for the specific language governing permissions and
14faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase * limitations under the License.
15faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase */
16faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haasepackage com.android.transitiontests;
17faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
18faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haaseimport android.app.Activity;
19faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haaseimport android.os.Bundle;
20d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.ChangeBounds;
21faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haaseimport android.view.View;
22faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haaseimport android.view.ViewGroup;
23d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.Crossfade;
24d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.Scene;
25d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.TransitionSet;
26d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.TransitionManager;
27faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
28faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
29faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haasepublic class CrossFadeDemo extends Activity {
30faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
31faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    ViewGroup mSceneRoot;
32faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    static int mCurrentScene;
33faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    Scene mScene1, mScene2;
34faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    TransitionManager mTransitionManager;
35faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
36faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    @Override
37faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    public void onCreate(Bundle savedInstanceState) {
38faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        super.onCreate(savedInstanceState);
39faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        setContentView(R.layout.crossfade);
40faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
41faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        View container = (View) findViewById(R.id.container);
42faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        mSceneRoot = (ViewGroup) container.getParent();
43faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
44d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase        mScene1 = Scene.getSceneForLayout(mSceneRoot, R.layout.crossfade, this);
45d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase        mScene2 = Scene.getSceneForLayout(mSceneRoot, R.layout.crossfade_1, this);
46faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
47faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        Crossfade crossfade = new Crossfade();
484f0c4672ac7fd6b8135e27d8f816da2ebaf7d63aChet Haase        crossfade.setFadeBehavior(Crossfade.FADE_BEHAVIOR_CROSSFADE);
494f0c4672ac7fd6b8135e27d8f816da2ebaf7d63aChet Haase        crossfade.setResizeBehavior(Crossfade.RESIZE_BEHAVIOR_NONE);
50ff58f92a0a77ad849ba714b5adac96790eca0048Chet Haase        crossfade.addTarget(R.id.textview).addTarget(R.id.textview1).
51ff58f92a0a77ad849ba714b5adac96790eca0048Chet Haase                addTarget(R.id.textview2);
52faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        mTransitionManager = new TransitionManager();
53d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase        TransitionSet moveCrossFade = new TransitionSet();
54d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase        moveCrossFade.addTransition(crossfade).addTransition(new ChangeBounds());
55faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        mTransitionManager.setTransition(mScene1, moveCrossFade);
56faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        mTransitionManager.setTransition(mScene2, moveCrossFade);
57faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        mCurrentScene = 1;
58faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    }
59faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
60faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    public void sendMessage(View view) {
61faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        if (mCurrentScene == 1) {
62faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase            mTransitionManager.transitionTo(mScene2);
63faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase            mCurrentScene = 2;
64faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        } else {
65faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase            mTransitionManager.transitionTo(mScene1);
66faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase            mCurrentScene = 1;
67faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        }
68faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    }
69faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase}
70