浏览信息,更换显示文字 会使用TextView,调用textview.setText(" somethinf ");更新TextView中的内容,
会发现,TextView中的内容是立刻改变的,这种内容切换方式生硬,可以用TextSwitcher添加动画效果避免生硬的切换,TextSwitcher用于文本标签添加动画效果,这点和ImageSwitcher类似,
效果图:
第一个文本为直接切换,第二个文本为加入动画切换效果
Java主代码:
- package com.manning.androidhacks.hack005;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.Gravity;
- import android.view.View;
- import android.widget.TextSwitcher;
- import android.widget.TextView;
- import android.widget.ViewSwitcher.ViewFactory;
- public class MainActivity extends Activity {
- private static final String[] TEXTS = {"First", "Second", "Third"};
- private int mTextsPosition = 0;
- private TextSwitcher mTextSwitcher;
- private TextView textview;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- textview = (TextView) findViewById(R.id.textview);
- // 获得TextSwitch的引用,
- mTextSwitcher = (TextSwitcher) findViewById(R.id.your_textview);
- //指定TextSwitcher的viewFactory
- mTextSwitcher.setFactory(new ViewFactory() {
- @Override
- public View makeView() {
- TextView t = new TextView(MainActivity.this);
- t.setGravity(Gravity.CENTER);
- return t;
- }
- });
- // 设置切入动画效果,使用系统的谈入效果,也可以自定义
- mTextSwitcher.setInAnimation(this, android.R.anim.fade_in);
- // 设置切出动画效果,使用系统的谈出效果,也可以自定义
- mTextSwitcher.setOutAnimation(this, android.R.anim.fade_out);
- onSwitchText(null);
- }
- // 点击效果
- public void onSwitchText(View v) {
- // 设置渐变切换文字
- mTextSwitcher.setText(TEXTS[mTextsPosition]);
- // 设置一般文字切换
- textview.setText(TEXTS[mTextsPosition]);
- //改变文字,待下一次显示
- setNextPosition();
- }
- private void setNextPosition() {
- mTextsPosition = (mTextsPosition + 1) % TEXTS.length;
- }
- }
- <?xml version="1.0" encoding="utf-8"?>
- <!--
- Copyright (c) 2012 Manning
- See the file license.txt for copying permission.
- -->
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent" >
- <TextView
- android:id="@+id/textview"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:gravity="center"
- android:textColor="#FF0000FF"
- android:layout_above="@+id/your_textview"
- android:layout_marginBottom="20dip" />
- <TextSwitcher
- android:id="@+id/your_textview"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_centerInParent="true" />
- <Button
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
- android:onClick="onSwitchText"
- android:text="Click me" />
- </RelativeLayout>
TextSwitcher和ImageSwitcher提供了添加动画的简单方法,使过渡更自然,请不要滥用。
源码下载
textview内容切换动画http://download.csdn.net/detail/xiaobijia/8087535
over