OSDN Git Service

Demo ability to enable default layout animations from XML
authorChet Haase <chet@google.com>
Fri, 3 Sep 2010 22:43:47 +0000 (15:43 -0700)
committerChet Haase <chet@google.com>
Fri, 3 Sep 2010 22:50:32 +0000 (15:50 -0700)
Change-Id: I4a5c73391d277c248958cf8cb5260078006bafb1

samples/ApiDemos/AndroidManifest.xml
samples/ApiDemos/res/layout/layout_animations_by_default.xml [new file with mode: 0644]
samples/ApiDemos/src/com/example/android/apis/animation/LayoutAnimationsByDefault.java [new file with mode: 0644]

index 78d2349..3275365 100644 (file)
             </intent-filter>
         </activity>
 
+        <activity android:name=".animation.AnimationCloning"
+                  android:label="Animation/Cloning">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.SAMPLE_CODE" />
+            </intent-filter>
+        </activity>
+
         <activity android:name=".animation.AnimationSeeking" android:label="Animation/Seeking">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
             </intent-filter>
         </activity>
 
+        <activity android:name=".animation.LayoutAnimations"
+                  android:label="Animation/Layout Animations">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.SAMPLE_CODE" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name=".animation.LayoutAnimationsByDefault"
+                  android:label="Animation/Default Layout Animations">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.SAMPLE_CODE" />
+            </intent-filter>
+        </activity>
+
         <!-- ************************************* -->
         <!--     ANIMATION PACKAGE SAMPLES         -->
         <!-- ************************************* -->
diff --git a/samples/ApiDemos/res/layout/layout_animations_by_default.xml b/samples/ApiDemos/res/layout/layout_animations_by_default.xml
new file mode 100644 (file)
index 0000000..e6f31c4
--- /dev/null
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    >
+    <Button
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="Add Button"
+        android:id="@+id/addNewButton"
+        />
+    <LinearLayout
+        android:orientation="horizontal"
+        android:layout_width="fill_parent"
+        android:layout_height="fill_parent"
+        android:id="@+id/horizontalContainer"
+        android:animateLayoutChanges="true"
+        />
+    <LinearLayout
+        android:orientation="vertical"
+        android:layout_width="wrap_content"
+        android:layout_height="fill_parent"
+        android:id="@+id/verticalContainer"
+        android:animateLayoutChanges="true"
+        />
+</LinearLayout>
diff --git a/samples/ApiDemos/src/com/example/android/apis/animation/LayoutAnimationsByDefault.java b/samples/ApiDemos/src/com/example/android/apis/animation/LayoutAnimationsByDefault.java
new file mode 100644 (file)
index 0000000..c3e8565
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2010 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.example.android.apis.animation;
+
+// Need the following import to get access to the app resources, since this
+// class is in a sub-package.
+import com.example.android.apis.R;
+
+import android.animation.Animatable;
+import android.animation.AnimatableListenerAdapter;
+import android.animation.Keyframe;
+import android.animation.LayoutTransition;
+import android.animation.PropertyAnimator;
+import android.animation.PropertyValuesHolder;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.widget.Button;
+
+/**
+ * This application demonstrates the seeking capability of Animator. The SeekBar in the
+ * UI allows you to set the position of the animation. Pressing the Run button will play from
+ * the current position of the animation.
+ */
+public class LayoutAnimationsByDefault extends Activity {
+
+    private int numButtons = 1;
+
+    /** Called when the activity is first created. */
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.layout_animations_by_default);
+
+        final ViewGroup horizontalContainer = (ViewGroup) findViewById(R.id.horizontalContainer);
+        final ViewGroup verticalContainer = (ViewGroup) findViewById(R.id.verticalContainer);
+
+        Button addButton = (Button) findViewById(R.id.addNewButton);
+        addButton.setOnClickListener(new View.OnClickListener() {
+            public void onClick(View v) {
+                Button newButton = new Button(getApplicationContext());
+                newButton.setText("Click To Remove " + (numButtons++));
+                newButton.setOnClickListener(new View.OnClickListener() {
+                    public void onClick(View v) {
+                        horizontalContainer.removeView(v);
+                    }
+                });
+                horizontalContainer.addView(newButton, Math.min(1, horizontalContainer.getChildCount()));
+
+                newButton = new Button(getApplicationContext());
+                newButton.setText("Click To Remove " + (numButtons++));
+                newButton.setOnClickListener(new View.OnClickListener() {
+                    public void onClick(View v) {
+                        verticalContainer.removeView(v);
+                    }
+                });
+                verticalContainer.addView(newButton, Math.min(1, verticalContainer.getChildCount()));
+            }
+        });
+    }
+
+}
\ No newline at end of file