| /* | |
| * Copyright 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.example.android.textswitcher; | |
| import android.app.Activity; | |
| import android.os.Bundle; | |
| import android.view.Gravity; | |
| import android.view.View; | |
| import android.view.animation.Animation; | |
| import android.view.animation.AnimationUtils; | |
| import android.widget.Button; | |
| import android.widget.TextSwitcher; | |
| import android.widget.TextView; | |
| import android.widget.ViewSwitcher.ViewFactory; | |
| /** | |
| * This sample shows the use of the {@link android.widget.TextSwitcher} View with animations. A | |
| * {@link android.widget.TextSwitcher} is a special type of {@link android.widget.ViewSwitcher} that animates | |
| * the current text out and new text in when | |
| * {@link android.widget.TextSwitcher#setText(CharSequence)} is called. | |
| */ | |
| public class MainActivity extends Activity { | |
| private TextSwitcher mSwitcher; | |
| private int mCounter = 0; | |
| @Override | |
| protected void onCreate(Bundle savedInstanceState) { | |
| super.onCreate(savedInstanceState); | |
| setContentView(R.layout.sample_main); | |
| // Get the TextSwitcher view from the layout | |
| mSwitcher = (TextSwitcher) findViewById(R.id.switcher); | |
| // BEGIN_INCLUDE(setup) | |
| // Set the factory used to create TextViews to switch between. | |
| mSwitcher.setFactory(mFactory); | |
| /* | |
| * Set the in and out animations. Using the fade_in/out animations | |
| * provided by the framework. | |
| */ | |
| Animation in = AnimationUtils.loadAnimation(this, | |
| android.R.anim.fade_in); | |
| Animation out = AnimationUtils.loadAnimation(this, | |
| android.R.anim.fade_out); | |
| mSwitcher.setInAnimation(in); | |
| mSwitcher.setOutAnimation(out); | |
| // END_INCLUDE(setup) | |
| /* | |
| * Setup the 'next' button. The counter is incremented when clicked and | |
| * the new value is displayed in the TextSwitcher. The change of text is | |
| * automatically animated using the in/out animations set above. | |
| */ | |
| Button nextButton = (Button) findViewById(R.id.button); | |
| nextButton.setOnClickListener(new View.OnClickListener() { | |
| @Override | |
| public void onClick(View v) { | |
| mCounter++; | |
| // BEGIN_INCLUDE(settext) | |
| mSwitcher.setText(String.valueOf(mCounter)); | |
| // END_INCLUDE(settext) | |
| } | |
| }); | |
| // Set the initial text without an animation | |
| mSwitcher.setCurrentText(String.valueOf(mCounter)); | |
| } | |
| // BEGIN_INCLUDE(factory) | |
| /** | |
| * The {@link android.widget.ViewSwitcher.ViewFactory} used to create {@link android.widget.TextView}s that the | |
| * {@link android.widget.TextSwitcher} will switch between. | |
| */ | |
| private ViewFactory mFactory = new ViewFactory() { | |
| @Override | |
| public View makeView() { | |
| // Create a new TextView | |
| TextView t = new TextView(MainActivity.this); | |
| t.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL); | |
| t.setTextAppearance(MainActivity.this, android.R.style.TextAppearance_Large); | |
| return t; | |
| } | |
| }; | |
| // END_INCLUDE(factory) | |
| } |