Android初级之组件基础10-TextSwitcher

本文详细介绍了Android中的TextSwitcher组件,它是用于显示交替文本的视图,常用于实现平滑的文本切换动画。通过示例代码展示了如何在布局中使用TextSwitcher,并设置动画效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TextSwitcher,用来使屏幕上的label产生动画效果,当setText()方法被调用时,TextSwitcher以动画的形式将当前的文字内容消失并显示新的文字内容。

1.常用方法
setCurrentText(CharSequence text)
设置当前显示的文本视图的文字内容(非动画方式显示)

setText(CharSequence text)
设置下一视图的文本内容,并切换到下一视图。可以动画地退出当前文本内容,显示下一文本内容。

2.实例
布局文件XML如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  	xmlns:android="http://schemas.android.com/apk/res/android"
  	android:orientation="vertical"
  	android:layout_width="fill_parent"
  	android:layout_height="fill_parent">
  
	<Button android:id="@id/btnBaseTextSwitcher" 
		android:layout_width="wrap_content" android:layout_height="wrap_content"
		android:text="点击变幻文本" android:hint="以动画形式变换文本"/>
	<TextSwitcher android:id="@id/tsBase"
		android:layout_width="wrap_content" android:layout_height="wrap_content"/>	
</LinearLayout>

代码如下:

import java.util.Random;

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;
import cn.youtous.R;

public class BaseTextSwitcher extends Activity {
	private Button btnBase;
	private TextSwitcher tsBase;


	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		this.setContentView(R.layout.base_textswitcher);
		btnBase = (Button)findViewById(R.id.btnBaseTextSwitcher);
		btnBase.setOnClickListener(new BaseTextSwitcherClickListener());
		tsBase = (TextSwitcher)findViewById(R.id.tsBase);
		tsBase.setFactory(new BaseTextSwitcherFactory());	
		setupAnimation();
	}
	
	/**
	 * 设置动画形式
	 */
	private void setupAnimation(){
		Animation in = AnimationUtils.loadAnimation(this, android.R.anim.slide_in_left);
		in.setDuration(2000);	//为了突出动画效果,我们设置动画事件为2秒钟
		Animation out = AnimationUtils.loadAnimation(this, android.R.anim.slide_out_right);
		out.setDuration(2000);
		tsBase.setInAnimation(in);
		tsBase.setOutAnimation(out);
	}
	
	/**
	 * ViewFactory
	 */
	class BaseTextSwitcherFactory implements ViewSwitcher.ViewFactory {
		@Override
		public View makeView() {
			TextView t = new TextView(BaseTextSwitcher.this);
	        t.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL);
	        t.setTextSize(36);
	        return t;
		}		
	}
	
	/**
	 * 按钮的点击事件监听器
	 */
	class BaseTextSwitcherClickListener implements View.OnClickListener {
		@Override
		public void onClick(View v) {
			Random rand = new Random();
			tsBase.setText(String.valueOf(rand.nextInt()));
		}
		
	}
}

我们可以注意到,如果仅为TextSwitcher设置ViewFactory,不设置动画时,TextSwitcher只是简单地对文字进行更换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值