TextSwitcher切换动画

package com.leigo.textswitcherdemo;

import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextSwitcher;
import android.widget.ViewSwitcher;

import com.viewpagerindicator.CirclePageIndicator;
import com.viewpagerindicator.PageIndicator;


public class MainActivity extends ActionBarActivity implements ViewSwitcher.ViewFactory {

    private static final int[] TABS = {R.string.tip_guide_first, R.string.tip_guide_second, R.string.tip_guide_third
            , R.string.tip_guide_fourth, R.string.tip_guide_fifth, R.string.tip_guide_six};

    TestFragmentAdapter mAdapter;
    ViewPager mPager;
    PageIndicator mIndicator;
    TextSwitcher mTip;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mAdapter = new TestFragmentAdapter(getFragmentManager());

        mPager = (ViewPager) findViewById(R.id.pager);
        mPager.setAdapter(mAdapter);

        mIndicator = (CirclePageIndicator) findViewById(R.id.indicator);
        mIndicator.setViewPager(mPager);

        mTip = (TextSwitcher) findViewById(R.id.tip);
        mTip.setFactory(this);
        mTip.setCurrentText(getString(R.string.tip_guide_first));
        mIndicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            }

            @Override
            public void onPageSelected(int position) {
                mTip.setText(getString(TABS[position]));
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
    }

    @Override
    public View makeView() {
        return LayoutInflater.from(this).inflate(R.layout.guide_tip, null);
    }
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ff00a7ff">

    <android.support.v4.view.ViewPager  android:id="@+id/pager" android:paddingBottom="100dp" android:layout_width="match_parent" android:layout_height="match_parent" />

    <com.viewpagerindicator.CirclePageIndicator  android:id="@+id/indicator" android:layout_alignParentBottom="true" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="16dp" app:strokeWidth="0.0dip" app:fillColor="#ffffffff" app:pageColor="#88ffffff" app:strokeColor="#00000000" />

    <TextSwitcher  android:id="@+id/tip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:inAnimation="@anim/slide_in_down" android:outAnimation="@anim/slide_out_up" android:layout_above="@id/indicator" android:layout_centerHorizontal="true" />

</RelativeLayout>

slide_in_down.xml

<?xml version="1.0" encoding="utf-8"?>
<set  android:shareInterpolator="false" android:zAdjustment="top" xmlns:android="http://schemas.android.com/apk/res/android">
    <translate  android:duration="@integer/config_activity_animation_time" android:fromYDelta="50.0%p" android:toYDelta="0.0" />
    <alpha  android:duration="@integer/config_activity_animation_time" android:fromAlpha="0.0" android:toAlpha="1.0" />
</set>

slide_out_up.xml

<?xml version="1.0" encoding="utf-8"?>
<set  android:shareInterpolator="false" android:zAdjustment="top" xmlns:android="http://schemas.android.com/apk/res/android">
    <translate  android:duration="@integer/config_activity_animation_time" android:fromYDelta="0.0" android:toYDelta="-50.0%p" />
    <alpha  android:duration="@integer/config_activity_animation_time" android:fromAlpha="1.0" android:toAlpha="0.0" />
</set>
package com.leigo.textswitcherdemo;

import android.app.Fragment;
import android.app.FragmentManager;
import android.support.v13.app.FragmentPagerAdapter;

class TestFragmentAdapter extends FragmentPagerAdapter {
    protected static final String[] CONTENT = new String[]{"This", "Is", "A", "Test", "Demo", "Text"};

    private int mCount = CONTENT.length;

    public TestFragmentAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        return TestFragment.newInstance(CONTENT[position % CONTENT.length]);
    }

    @Override
    public int getCount() {
        return mCount;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return TestFragmentAdapter.CONTENT[position % CONTENT.length];
    }
}

你可能感兴趣的:(android,动画,TextSwitch)