diff options
Diffstat (limited to 'samples/ApiDemos/src')
| -rw-r--r-- | samples/ApiDemos/src/com/example/android/apis/animation/ListFlipper.java | 140 | ||||
| -rw-r--r-- | samples/ApiDemos/src/com/example/android/apis/view/RotatingButton.java | 101 |
2 files changed, 241 insertions, 0 deletions
diff --git a/samples/ApiDemos/src/com/example/android/apis/animation/ListFlipper.java b/samples/ApiDemos/src/com/example/android/apis/animation/ListFlipper.java new file mode 100644 index 000000000..4e0502649 --- /dev/null +++ b/samples/ApiDemos/src/com/example/android/apis/animation/ListFlipper.java @@ -0,0 +1,140 @@ +/* + * 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 android.animation.AnimatableListenerAdapter; +import android.view.animation.AccelerateInterpolator; +import android.view.animation.DecelerateInterpolator; +import android.view.animation.Interpolator; +import android.widget.ArrayAdapter; +import android.widget.FrameLayout; +import android.widget.ListView; +import com.example.android.apis.R; + +import java.util.ArrayList; + +import android.animation.Animatable; +import android.animation.Animator; +import android.animation.PropertyAnimator; +import android.animation.Sequencer; +import android.animation.Animatable.AnimatableListener; +import android.app.Activity; +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.RadialGradient; +import android.graphics.Shader; +import android.graphics.drawable.ShapeDrawable; +import android.graphics.drawable.shapes.OvalShape; +import android.os.Bundle; +import android.view.View; +import android.view.animation.BounceInterpolator; +import android.widget.Button; +import android.widget.LinearLayout; +import android.widget.SeekBar; + +/** + * 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 ListFlipper extends Activity { + + private static final int DURATION = 1500; + private SeekBar mSeekBar; + + private static final String[] LIST_STRINGS_EN = new String[] { + "One", + "Two", + "Three", + "Four", + "Five", + "Six" + }; + private static final String[] LIST_STRINGS_FR = new String[] { + "Un", + "Deux", + "Trois", + "Quatre", + "Le Five", + "Six" + }; + + ListView mEnglishList; + ListView mFrenchList; + + /** Called when the activity is first created. */ + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.rotating_list); + //FrameLayout container = (LinearLayout) findViewById(R.id.container); + mEnglishList = (ListView) findViewById(R.id.list_en); + mFrenchList = (ListView) findViewById(R.id.list_fr); + + // Prepare the ListView + final ArrayAdapter<String> adapterEn = new ArrayAdapter<String>(this, + android.R.layout.simple_list_item_1, LIST_STRINGS_EN); + // Prepare the ListView + final ArrayAdapter<String> adapterFr = new ArrayAdapter<String>(this, + android.R.layout.simple_list_item_1, LIST_STRINGS_FR); + + mEnglishList.setAdapter(adapterEn); + mFrenchList.setAdapter(adapterFr); + mFrenchList.setRotationY(-90f); + + Button starter = (Button) findViewById(R.id.button); + starter.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View v) { + flipit(); + } + }); + } + + private Interpolator accelerator = new AccelerateInterpolator(); + private Interpolator decelerator = new DecelerateInterpolator(); + private void flipit() { + final ListView visibleList; + final ListView invisibleList; + if (mEnglishList.getVisibility() == View.GONE) { + visibleList = mFrenchList; + invisibleList = mEnglishList; + } else { + invisibleList = mFrenchList; + visibleList = mEnglishList; + } + PropertyAnimator visToInvis = new PropertyAnimator(500, visibleList, "rotationY", 0f, 90f); + visToInvis.setInterpolator(accelerator); + final PropertyAnimator invisToVis = new PropertyAnimator(500, invisibleList, "rotationY", -90f, 0f); + invisToVis.setInterpolator(decelerator); + visToInvis.addListener(new AnimatableListenerAdapter() { + @Override + public void onAnimationEnd(Animatable anim) { + visibleList.setVisibility(View.GONE); + invisToVis.start(); + invisibleList.setVisibility(View.VISIBLE); + } + }); + visToInvis.start(); + } + + +}
\ No newline at end of file diff --git a/samples/ApiDemos/src/com/example/android/apis/view/RotatingButton.java b/samples/ApiDemos/src/com/example/android/apis/view/RotatingButton.java new file mode 100644 index 000000000..9c56ece3a --- /dev/null +++ b/samples/ApiDemos/src/com/example/android/apis/view/RotatingButton.java @@ -0,0 +1,101 @@ +/* + * 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.view; + +// 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.app.Activity; +import android.os.Bundle; +import android.widget.Button; +import android.widget.LinearLayout; +import android.widget.SeekBar; + +/** + * 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 RotatingButton extends Activity { + + /** Called when the activity is first created. */ + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.rotating_view); + final Button rotatingButton = (Button) findViewById(R.id.rotatingButton); + SeekBar seekBar; + seekBar = (SeekBar) findViewById(R.id.rotationX); + seekBar.setMax(360); + seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + } + + @Override + public void onProgressChanged(SeekBar seekBar, int progress, + boolean fromUser) { + // prevent seeking on app creation + rotatingButton.setRotationX((float)progress); + } + }); + seekBar = (SeekBar) findViewById(R.id.rotationY); + seekBar.setMax(360); + seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + } + + @Override + public void onProgressChanged(SeekBar seekBar, int progress, + boolean fromUser) { + // prevent seeking on app creation + rotatingButton.setRotationY((float)progress); + } + }); + seekBar = (SeekBar) findViewById(R.id.rotationZ); + seekBar.setMax(360); + seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + } + + @Override + public void onProgressChanged(SeekBar seekBar, int progress, + boolean fromUser) { + // prevent seeking on app creation + rotatingButton.setRotation((float)progress); + } + }); + } +}
\ No newline at end of file |
