summaryrefslogtreecommitdiffstats
path: root/tests/TransitionTests
diff options
context:
space:
mode:
authorChet Haase <chet@google.com>2013-06-10 13:00:06 -0700
committerChet Haase <chet@google.com>2013-06-10 14:06:14 -0700
commit4f5072327d00822a2bfaff56df46cea2981ac90d (patch)
treed3589b68e6e529e087088dc967bef41a8815a92e /tests/TransitionTests
parent6b1d5a4ff220378407e19b7733e727be88b41376 (diff)
downloadframeworks_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')
-rw-r--r--tests/TransitionTests/AndroidManifest.xml7
-rw-r--r--tests/TransitionTests/res/layout/two_buttons.xml15
-rw-r--r--tests/TransitionTests/src/com/android/transitiontests/DelayedTransition.java66
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));
+ }
+ }
+ });
+ }
+
+}