diff options
author | Chet Haase <chet@google.com> | 2013-06-10 13:00:06 -0700 |
---|---|---|
committer | Chet Haase <chet@google.com> | 2013-06-10 14:06:14 -0700 |
commit | 4f5072327d00822a2bfaff56df46cea2981ac90d (patch) | |
tree | d3589b68e6e529e087088dc967bef41a8815a92e /tests/TransitionTests | |
parent | 6b1d5a4ff220378407e19b7733e727be88b41376 (diff) | |
download | frameworks_base-4f5072327d00822a2bfaff56df46cea2981ac90d.zip frameworks_base-4f5072327d00822a2bfaff56df46cea2981ac90d.tar.gz frameworks_base-4f5072327d00822a2bfaff56df46cea2981ac90d.tar.bz2 |
Add dynamic scene creation/transition capability
Add TransitionManager.beginDelayedTransition() to handle starting a transition
on the next frame for a given scene root based on all changes that
take place between the first call to that method and the next animation frame.
Issue #9321937 Transitions: consider batching up multiple scene actions
Change-Id: I3fc92b6b4ec5ff42b1e678bcfd385703e32eba2a
Diffstat (limited to 'tests/TransitionTests')
3 files changed, 88 insertions, 0 deletions
diff --git a/tests/TransitionTests/AndroidManifest.xml b/tests/TransitionTests/AndroidManifest.xml index be6b145..98174ab 100644 --- a/tests/TransitionTests/AndroidManifest.xml +++ b/tests/TransitionTests/AndroidManifest.xml @@ -212,6 +212,13 @@ <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> + <activity android:label="DelayedTransition" + android:name="DelayedTransition"> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> </application> diff --git a/tests/TransitionTests/res/layout/two_buttons.xml b/tests/TransitionTests/res/layout/two_buttons.xml new file mode 100644 index 0000000..23d59f8 --- /dev/null +++ b/tests/TransitionTests/res/layout/two_buttons.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:orientation="vertical" + android:layout_width="fill_parent" + android:layout_height="fill_parent" + android:id="@+id/container"> + <Button + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:id="@+id/button1"/> + <Button + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:id="@+id/button2"/> +</LinearLayout>
\ No newline at end of file diff --git a/tests/TransitionTests/src/com/android/transitiontests/DelayedTransition.java b/tests/TransitionTests/src/com/android/transitiontests/DelayedTransition.java new file mode 100644 index 0000000..f05ea78 --- /dev/null +++ b/tests/TransitionTests/src/com/android/transitiontests/DelayedTransition.java @@ -0,0 +1,66 @@ +/* + * 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.android.transitiontests; + +import android.app.Activity; +import android.os.Bundle; +import android.view.View; +import android.view.ViewGroup; +import android.view.transition.TransitionManager; +import android.widget.Button; +import android.widget.LinearLayout; +import static android.widget.LinearLayout.LayoutParams; + +public class DelayedTransition extends Activity { + + private static final int SEARCH_SCREEN = 0; + private static final int RESULTS_SCREEN = 1; + ViewGroup mSceneRoot; + static int mCurrentScene; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.two_buttons); + + final Button button1 = (Button) findViewById(R.id.button1); + final Button button2 = (Button) findViewById(R.id.button2); + final LinearLayout container = (LinearLayout) findViewById(R.id.container); + button1.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int buttonWidth = button1.getWidth(); + int containerWidth = container.getWidth(); + if (buttonWidth < containerWidth) { + TransitionManager.beginDelayedTransition(container, null); + button1.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, + LayoutParams.WRAP_CONTENT)); + TransitionManager.beginDelayedTransition(container, null); + button2.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, + LayoutParams.MATCH_PARENT)); + } else { + TransitionManager.beginDelayedTransition(container, null); + button1.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, + LayoutParams.WRAP_CONTENT)); + TransitionManager.beginDelayedTransition(container, null); + button2.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, + LayoutParams.WRAP_CONTENT)); + } + } + }); + } + +} |