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 */
166ebe3de331efd00ba23bc4191d4a82cfa4c39160Chet Haase
17d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haasepackage android.transition;
18faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
19ecd857be3946283ebb4306e2c03ae70f5c5bb152George Mountimport android.content.Context;
20ecd857be3946283ebb4306e2c03ae70f5c5bb152George Mountimport android.util.AttributeSet;
21ecd857be3946283ebb4306e2c03ae70f5c5bb152George Mount
22faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase/**
23faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase * Utility class for creating a default transition that automatically fades,
24faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase * moves, and resizes views during a scene change.
25d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase *
26d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase * <p>An AutoTransition can be described in a resource file by using the
27d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase * tag <code>autoTransition</code>, along with the other standard
28d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase * attributes of {@link android.R.styleable#Transition}.</p>
29faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase */
30d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haasepublic class AutoTransition extends TransitionSet {
31faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
32faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    /**
33d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase     * Constructs an AutoTransition object, which is a TransitionSet which
34faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase     * first fades out disappearing targets, then moves and resizes existing
35faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase     * targets, and finally fades in appearing targets.
36faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase     *
37faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase     */
38faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    public AutoTransition() {
39ecd857be3946283ebb4306e2c03ae70f5c5bb152George Mount        init();
40ecd857be3946283ebb4306e2c03ae70f5c5bb152George Mount    }
41ecd857be3946283ebb4306e2c03ae70f5c5bb152George Mount
42ecd857be3946283ebb4306e2c03ae70f5c5bb152George Mount    public AutoTransition(Context context, AttributeSet attrs) {
43ecd857be3946283ebb4306e2c03ae70f5c5bb152George Mount        super(context, attrs);
44ecd857be3946283ebb4306e2c03ae70f5c5bb152George Mount        init();
45ecd857be3946283ebb4306e2c03ae70f5c5bb152George Mount    }
46ecd857be3946283ebb4306e2c03ae70f5c5bb152George Mount
47ecd857be3946283ebb4306e2c03ae70f5c5bb152George Mount    private void init() {
48d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase        setOrdering(ORDERING_SEQUENTIAL);
49d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase        addTransition(new Fade(Fade.OUT)).
50d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase                addTransition(new ChangeBounds()).
51d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase                addTransition(new Fade(Fade.IN));
52faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    }
53faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase}
54