1dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase/* 2dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase * Copyright (C) 2013 The Android Open Source Project 3dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase * 4dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase * Licensed under the Apache License, Version 2.0 (the "License"); 5dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase * you may not use this file except in compliance with the License. 6dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase * You may obtain a copy of the License at 7dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase * 8dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase * http://www.apache.org/licenses/LICENSE-2.0 9dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase * 10dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase * Unless required by applicable law or agreed to in writing, software 11dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase * distributed under the License is distributed on an "AS IS" BASIS, 12dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase * See the License for the specific language governing permissions and 14dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase * limitations under the License. 15dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase */ 16dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haasepackage com.android.transitiontests; 17dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase 18dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haaseimport android.app.Activity; 19dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haaseimport android.os.Bundle; 20dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haaseimport android.view.View; 21dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haaseimport android.view.ViewGroup; 22d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.Crossfade; 23d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.ChangeBounds; 24d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.Scene; 25d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.Transition; 26d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.TransitionSet; 27d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.TransitionManager; 28dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haaseimport android.widget.ImageView; 29dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase 30dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haasepublic class CrossfadeImage extends Activity { 31dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase ViewGroup mSceneRoot; 32dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase static int mCurrentScene; 33dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase Scene mScene1, mScene2; 34dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase TransitionManager mTransitionManager; 35dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase boolean mExpanded = false; 36dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase Transition mTransition; 37dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase ImageView mImageView; 38dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase 39dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase @Override 40dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase public void onCreate(Bundle savedInstanceState) { 41dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase super.onCreate(savedInstanceState); 42dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase setContentView(R.layout.crossfade_image); 43dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase 4451efddbd3bb304de2dd47fa8cd1114ac555958bbAlan Viverette ViewGroup container = findViewById(R.id.container); 45dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase mSceneRoot = container; 46dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase 4751efddbd3bb304de2dd47fa8cd1114ac555958bbAlan Viverette mImageView = findViewById(R.id.contact_picture); 48dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase mImageView.setScaleType(ImageView.ScaleType.FIT_CENTER); 49dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase 50dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase Crossfade mCrossfade = new Crossfade(); 51ff58f92a0a77ad849ba714b5adac96790eca0048Chet Haase mCrossfade.addTarget(R.id.contact_picture); 52dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase 53d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase TransitionSet group = new TransitionSet(); 54dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase group.setDuration(1500); 55d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase group.addTransition(mCrossfade).addTransition(new ChangeBounds()); 56dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase mTransition = group; 57dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase } 58dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase 59dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase public void sendMessage(View view) { 60dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase TransitionManager.beginDelayedTransition(mSceneRoot, mTransition); 61dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase if (mExpanded) { 62dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase mImageView.setImageResource(R.drawable.self_portrait_square_100); 63dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase } else { 64dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase mImageView.setImageResource(R.drawable.self_portrait_square_200); 65dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase } 66dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase mExpanded = !mExpanded; 67dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase } 68dc57d9dda559aaf06237b9124dc9ef27513bab31Chet Haase} 69