本文共 6158 字,大约阅读时间需要 20 分钟。
textswitcher
Android TextSwitcher and ImageSwitcher are classes used to add animations to texts and images as they are being displayed on the screen to make them visually appealing. In this tutorial we’ll implement each of these.
Android TextSwitcher和ImageSwitcher是用于在文本和图像在屏幕上显示时向其添加动画的类,以使它们具有视觉吸引力。 在本教程中,我们将实现所有这些。
The TextSwitcher and ImageSwitcher provide us a simple way to add animated transitions. These classes are used for a smooth transition animation in android view. Some usages of these are:
TextSwitcher和ImageSwitcher为我们提供了一种添加动画过渡的简单方法。 这些类用于android视图中的平滑过渡动画。 这些的一些用法是:
A TextSwitcher
is a specialised form of ViewSwitcher that contains only children of type TextView. TextSwitcher is used to animate a TextView when the text changes. Two types of animations are required to switch between texts:
一个TextSwitcher
是ViewSwitcher的一种特殊形式,它包含唯一类型的TextView的孩子。 当文本更改时,TextSwitcher用于为TextView设置动画。 在文本之间切换需要两种动画:
As you might have noticed in the previous tutorials containing ImageViews that the loading and rendering of images was abrupt and not smooth. Here ImageSwitcher comes to the rescue since it supports some form of transitions from one image to another. The implementation is given below.
正如您在包含ImageViews的以前的教程中可能已经注意到的那样,图像的加载和渲染是突然且不平滑的。 ImageSwitcher之所以能够解决这个问题,是因为它支持某种形式的从一个图像到另一个图像的过渡。 下面给出了实现。
imageSwitcher.setImageResource(R.drawable.ic_launcher);imageSwitcher.setFactory(new ViewFactory() { public View makeView() { ImageView myView = new ImageView(getApplicationContext()); return myView; }}
The only thing left now is to add the Animation as given in the below snippet:
现在剩下的唯一一件事就是添加以下片段中给出的Animation:
Animation in = AnimationUtils.loadAnimation(this,android.R.anim.slide_up);imageSwitcher.setInAnimation(in);imageSwitcher.setOutAnimation(out);
In short the following steps need to be implemented to use these classes:
简而言之,需要执行以下步骤才能使用这些类:
setOutAnimation()
setInAnimation()
setOutAnimation()
删除旧文本。 setInAnimation()
插入新文本 The layout for the MainActivity contains an ImageSwitcher, TextSwitcher and a Button in a RelativeLayout as shown below.
MainActivity的布局在RelativeLayout中包含一个ImageSwitcher,TextSwitcher和一个按钮,如下所示。
main.xml
main.xml
The MainActivity consists of the Text an Image Switchers with their views created using setFactory()
. The animations used are built in animations present in the android sdk. The application consists of three TextViews and ImageViews which are switched in cyclic order on each button click. The MainActivity.java is given below :
MainActivity包括“文本和图像切换器”,以及使用setFactory()
创建的视图。 所使用的动画是内置在android sdk中的动画中的。 该应用程序由三个TextView和ImageView组成,它们在每次单击按钮时都以循环顺序切换。 MainActivity.java如下所示:
package com.journaldev.switchers;import android.app.Activity;import android.os.Bundle;import android.view.Gravity;import android.view.View;import android.widget.ImageSwitcher;import android.widget.ImageView;import android.widget.TextSwitcher;import android.widget.TextView;import android.widget.ViewSwitcher;public class MainActivity extends Activity { private static final String[] TEXTS = { "Background", "XP", "Sky" }; private static final int[] IMAGES = { R.drawable.background, R.drawable.sample, R.drawable.sample_2 }; private int mPosition = 0; private TextSwitcher mTextSwitcher; private ImageSwitcher mImageSwitcher; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mTextSwitcher = (TextSwitcher) findViewById(R.id.textSwitcher); mTextSwitcher.setFactory(new ViewSwitcher.ViewFactory() { @Override public View makeView() { TextView textView = new TextView(MainActivity.this); textView.setTextSize(18); textView.setGravity(Gravity.CENTER); return textView; } }); mTextSwitcher.setInAnimation(this, android.R.anim.fade_in); mTextSwitcher.setOutAnimation(this, android.R.anim.fade_out); mImageSwitcher = (ImageSwitcher) findViewById(R.id.imageSwitcher); mImageSwitcher.setFactory(new ViewSwitcher.ViewFactory() { @Override public View makeView() { ImageView imageView = new ImageView(MainActivity.this); return imageView; } }); mImageSwitcher.setInAnimation(this, android.R.anim.slide_in_left); mImageSwitcher.setOutAnimation(this, android.R.anim.slide_out_right); onSwitch(null); } public void onSwitch(View view) { mTextSwitcher.setText(TEXTS[mPosition]); mImageSwitcher.setBackgroundResource(IMAGES[mPosition]); mPosition = (mPosition + 1) % TEXTS.length; }}
The onSwitch()
method is invoked on button click. Below is our application in execution.
单击按钮时将调用onSwitch()
方法。 以下是我们正在执行的应用程序。
This brings an end to this tutorial. You can download the final Android Switchers Project from the link given below.
本教程到此结束。 您可以从下面给出的链接下载最终的Android Switchers项目 。
翻译自:
textswitcher
转载地址:http://oyqzd.baihongyu.com/