1c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase/* 2c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase * Copyright (C) 2013 The Android Open Source Project 3c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase * 4c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase * Licensed under the Apache License, Version 2.0 (the "License"); 5c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase * you may not use this file except in compliance with the License. 6c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase * You may obtain a copy of the License at 7c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase * 8c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase * http://www.apache.org/licenses/LICENSE-2.0 9c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase * 10c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase * Unless required by applicable law or agreed to in writing, software 11c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase * distributed under the License is distributed on an "AS IS" BASIS, 12c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase * See the License for the specific language governing permissions and 14c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase * limitations under the License. 15c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase */ 16c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haasepackage com.android.transitiontests; 17c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase 18c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haaseimport android.app.Activity; 19c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haaseimport android.os.Bundle; 20d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.ChangeBounds; 21c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haaseimport android.view.View; 22c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haaseimport android.view.ViewGroup; 23d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.Crossfade; 24b7a7fc9d233bad507ce893882352618b13647058Chet Haaseimport android.transition.ChangeText; 25d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.Transition; 26d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.TransitionSet; 27d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.TransitionManager; 28c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haaseimport android.widget.Button; 29c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haaseimport android.widget.ImageView; 30c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haaseimport android.widget.TextView; 31c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase 32c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haaseimport static android.widget.LinearLayout.LayoutParams; 33c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase 34c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haasepublic class CrossfadeMultiple extends Activity { 35c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase ViewGroup mSceneRoot; 36c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase static int mCurrentScene; 37c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase TransitionManager mTransitionManager; 38c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase Transition mTransition; 39c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase ImageView mImageView; 40c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase TextView mTextView; 41c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase Button mButton; 42c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase Crossfade mCrossfade; 43d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase TransitionSet mCrossfadeGroup; 44b7a7fc9d233bad507ce893882352618b13647058Chet Haase TransitionSet mTextChangeGroup1, mTextChangeGroup2, mTextChangeGroup3; 45d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase TransitionSet mInOutGroup; 46c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase 47c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase @Override 48c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase public void onCreate(Bundle savedInstanceState) { 49c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase super.onCreate(savedInstanceState); 50c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase setContentView(R.layout.crossfade_multiple); 51c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase 52c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase ViewGroup container = (ViewGroup) findViewById(R.id.container); 53c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mSceneRoot = container; 54c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase 55c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mButton = (Button) findViewById(R.id.button); 56c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mImageView = (ImageView) findViewById(R.id.imageview); 57c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mTextView = (TextView) findViewById(R.id.textview); 58c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase 59c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mCrossfade = new Crossfade(); 60ff58f92a0a77ad849ba714b5adac96790eca0048Chet Haase mCrossfade.addTarget(R.id.button).addTarget(R.id.textview).addTarget(R.id.imageview); 61c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase 62d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase mCrossfadeGroup = new TransitionSet(); 63c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mCrossfadeGroup.setDuration(300); 64d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase mCrossfadeGroup.addTransition(mCrossfade).addTransition(new ChangeBounds()); 65c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mTransition = mCrossfadeGroup; 66c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase 67d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase mInOutGroup = new TransitionSet(); 68c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase Crossfade inOut = new Crossfade(); 69c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase inOut.setDuration(300); 70c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase inOut.setFadeBehavior(Crossfade.FADE_BEHAVIOR_OUT_IN); 71d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase ChangeBounds changeBounds = new ChangeBounds(); 72d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase changeBounds.setStartDelay(150); 73d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase changeBounds.setDuration(0); 74d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase mInOutGroup.addTransition(inOut).addTransition(changeBounds); 75c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase 76d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase mTextChangeGroup1 = new TransitionSet(); 77b7a7fc9d233bad507ce893882352618b13647058Chet Haase ChangeText changeTextInOut = new ChangeText(); 78b7a7fc9d233bad507ce893882352618b13647058Chet Haase changeTextInOut.setChangeBehavior(ChangeText.CHANGE_BEHAVIOR_OUT_IN); 79b7a7fc9d233bad507ce893882352618b13647058Chet Haase mTextChangeGroup1.addTransition(changeTextInOut).addTransition(new ChangeBounds()); 80c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase 81d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase mTextChangeGroup2 = new TransitionSet(); 82d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase mTextChangeGroup2.setOrdering(TransitionSet.ORDERING_SEQUENTIAL); 83b7a7fc9d233bad507ce893882352618b13647058Chet Haase ChangeText changeTextOut = new ChangeText(); 84b7a7fc9d233bad507ce893882352618b13647058Chet Haase changeTextOut.setChangeBehavior(ChangeText.CHANGE_BEHAVIOR_OUT); 85b7a7fc9d233bad507ce893882352618b13647058Chet Haase mTextChangeGroup2.addTransition(changeTextOut).addTransition(new ChangeBounds()); 86b7a7fc9d233bad507ce893882352618b13647058Chet Haase 87b7a7fc9d233bad507ce893882352618b13647058Chet Haase mTextChangeGroup3 = new TransitionSet(); 88b7a7fc9d233bad507ce893882352618b13647058Chet Haase mTextChangeGroup3.setOrdering(TransitionSet.ORDERING_SEQUENTIAL); 89b7a7fc9d233bad507ce893882352618b13647058Chet Haase ChangeText changeTextIn = new ChangeText(); 90b7a7fc9d233bad507ce893882352618b13647058Chet Haase changeTextIn.setChangeBehavior(ChangeText.CHANGE_BEHAVIOR_IN); 91b7a7fc9d233bad507ce893882352618b13647058Chet Haase mTextChangeGroup3.addTransition(changeTextIn).addTransition(new ChangeBounds()); 92c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase } 93c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase 94c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase public void sendMessage(View view) { 95c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase TransitionManager.beginDelayedTransition(mSceneRoot, mTransition); 96c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase int id = view.getId(); 97c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase LayoutParams params = null; 98c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase switch (id) { 99c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase case R.id.button1: 100c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase params = new LayoutParams(200, 200); 101c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mButton.setText("A"); 102c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mTextView.setText("1111111"); 103c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mImageView.setImageResource(R.drawable.self_portrait_square_100); 104c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase break; 105c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase case R.id.button2: 106c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase params = new LayoutParams(400, 200); 107c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mButton.setText("B"); 108c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mTextView.setText("2222222"); 109c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mImageView.setImageResource(R.drawable.self_portrait_square_200); 110c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase break; 111c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase case R.id.button3: 112c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase params = new LayoutParams(200, 400); 113c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mButton.setText("C"); 114c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mTextView.setText("3333333"); 115c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mImageView.setImageResource(R.drawable.self_portrait_square_400); 116c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase break; 117c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase } 118c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mButton.setLayoutParams(params); 119c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase } 120c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase 121c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase public void changeTransitionType(View view) { 122c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase int id = view.getId(); 123c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase switch (id) { 124c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase case R.id.reveal: 125c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mCrossfade.setFadeBehavior(Crossfade.FADE_BEHAVIOR_REVEAL); 126c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mTransition = mCrossfadeGroup; 127c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase break; 128c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase case R.id.crossfade: 129c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mCrossfade.setFadeBehavior(Crossfade.FADE_BEHAVIOR_CROSSFADE); 130c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mTransition = mCrossfadeGroup; 131c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase break; 132c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase case R.id.inout: 133c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mTransition = mInOutGroup; 134c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase break; 135c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase case R.id.textfade1: 136c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mTransition = mTextChangeGroup1; 137c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase break; 138c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase case R.id.textfade2: 139c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase mTransition = mTextChangeGroup2; 140c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase break; 141b7a7fc9d233bad507ce893882352618b13647058Chet Haase case R.id.textfade3: 142b7a7fc9d233bad507ce893882352618b13647058Chet Haase mTransition = mTextChangeGroup3; 143b7a7fc9d233bad507ce893882352618b13647058Chet Haase break; 144c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase } 145c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase } 146c81a8493884c7f432d6bd5b98aca3fbdc93b355bChet Haase} 147