【安卓学习】文本切换器

TextSwitcher

TextSwitcher 是 ViewSwitcher 的 子 类, 它 与 ImageSwitcher 很 相 似, 都 需 要 设 置 一 个ViewFactory,并且都可以设置切换时所显示的动画效果。不同的是 TextSwitcher 在实现 ViewFactory接口中的 makeView() 方法时,需要返回一个 TextView 组件。

基本语法

<TextSwitcher
 android:id="@+id/textSwitcher"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"/>

支持的属性

支持的属性

实例

XML

<?xml version="1.0"encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
	xmlns app="http://schemas.android.com/apk/res-auto"
	xmlns tools="http://schemas.android.com/tools"
	android:layout_width="match_parent"
	android:layout_height="match_parent"
	android:background="@mipmap/bg"
	tools context="com.mingrisoft.MainActivity">
	<!--定义文本切换器并设置文本切换时的动画效果-->
	<TextSwitcher
		android:id="@+id/textSwitcher"
		android:layout_width="260dp"
		android:layout_height="100dp"
		android:layout_marginTop="50dp"
		android:layout_marginLeft="50dp"
		android:inAnimation="@anim/in_animation"
		android:outAnimation="@anim/out_animation">
	</Textswitcher>
</RelativeLayout>

注意:在XML文件中设置TextSwitcher组件时,需要指定文字切换时进入与退出的动画文件,如代码中的“anim/in_animation”文字切换时的进入动画文件,“anim/out_animation”文字切换时的退出动画文件。这两个动画文件需要手动创建

Activity

public class MainActivity extends Activity{
	//定义文本切换器
	private TextSwitcher textSwitcher;
	//定义用于计算诗句数组下标
	private int index;
	//定义唐诗数组
	String[] poetry = new String[]{
		"望庐山瀑布""[作者]李白""日照香炉生紫烟,""避看瀑布挂前川。""飞流直下三千尺,""疑是银河落九天。"
	};
	@Override
	protected void onCreate(Bundle savedInstancestate){
		super.onCreate(savedInstancestate);
		setContentview(R.layout.activity_main);
	}
}

在主活动的 onCreate() 方法中,首先获取布局文件中的 TextSwitcher 组件,然后为其设置1 个 ViewFactory,并重写makeView() 方法,最后在重写的 makeView() 方法中创建 1 个用于显示唐诗文字的 TextView。

	//获取文本切换器组件
	textSwitcher (TextSwitcher)findviewById(R.id.textswitcher);
	//为文本切换器设置Factory
	textSwitcher.setFactory(new ViewSwitcher.ViewFactory(){
		@Override
		public View makeview(){
			//创建文本框组件用于显示唐诗文字
			Textview textview = new Textview(MainActivity.this);
			textView.setTextsize(30);
			//设置文字大小
			textView.setTextColor(Color.BLACK);
			//设置文字颜色为黑色
			return textView;
		}
})

重写onTouchEvent()方法,在该方法中实现单击手机或模拟器屏幕时切换显示的唐诗文字。具体代码如下:

@Override
public boolean onTouchEvent(MotionEvent event){
	//判断手指单击屏幕时
	if (event.getAction()==MotionEvent.ACTION_DOWN){
	//切换显示的诗句文字
	textSwitcher.setText(poetry[index++%poetry.length ])
	return super.onTouchEvent(event);
}

运行结果

在这里插入图片描述

相关推荐

  1. 文件管理

    2024-07-12 21:16:02       41 阅读
  2. 11菜单实现hdmi-4K动态切换

    2024-07-12 21:16:02       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 21:16:02       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 21:16:02       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 21:16:02       57 阅读
  4. Python语言-面向对象

    2024-07-12 21:16:02       68 阅读

热门阅读

  1. C#-反射

    C#-反射

    2024-07-12 21:16:02      15 阅读
  2. Codeforces Round #956 (Div. 2) and ByteRace 2024 A-C题解

    2024-07-12 21:16:02       23 阅读
  3. 科技与狠活

    2024-07-12 21:16:02       19 阅读
  4. 大语言模型系列-Transformer

    2024-07-12 21:16:02       21 阅读
  5. Git-Updates were rejected 解决

    2024-07-12 21:16:02       20 阅读
  6. 推荐系统中的冷启动问题及其解决方案

    2024-07-12 21:16:02       18 阅读
  7. vue在线预览excel、pdf、word文件

    2024-07-12 21:16:02       24 阅读
  8. 解决el-table表格没有横向滚动条

    2024-07-12 21:16:02       22 阅读
  9. PyTorch 1-深度学习

    2024-07-12 21:16:02       20 阅读