`

TextView中各种Interpolator的使用

阅读更多
package net.blogjava.mobile.interpolators;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.TranslateAnimation;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

public class Main extends Activity implements
		AdapterView.OnItemSelectedListener {
	private static final String[] INTERPOLATORS = { "Accelerate", "Decelerate",
			"Accelerate/Decelerate", "Anticipate", "Overshoot",
			"Anticipate/Overshoot", "Bounce" };

	@Override
	public void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		Spinner s = (Spinner) findViewById(R.id.spinner);
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
				android.R.layout.simple_spinner_item, INTERPOLATORS);
		adapter
				.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		s.setAdapter(adapter);
		s.setOnItemSelectedListener(this);
	}

	public void onItemSelected(AdapterView parent, View v, int position, long id) {
		final View target = findViewById(R.id.target);
		final View targetParent = (View) target.getParent();
		Animation animation = new TranslateAnimation(0.0f, targetParent
				.getWidth()
				- target.getWidth()
				- targetParent.getPaddingLeft()
				- targetParent.getPaddingRight(), 0.0f, 0.0f);
		animation.setDuration(1000);
		animation.setStartOffset(300);
		animation.setRepeatMode(Animation.RESTART);
		animation.setRepeatCount(Animation.INFINITE);

		switch (position) {
		case 0:
			animation.setInterpolator(AnimationUtils.loadInterpolator(this,
					android.R.anim.accelerate_interpolator));
			break;
		case 1:
			animation.setInterpolator(AnimationUtils.loadInterpolator(this,
					android.R.anim.decelerate_interpolator));
			break;
		case 2:
			animation.setInterpolator(AnimationUtils.loadInterpolator(this,
					android.R.anim.accelerate_decelerate_interpolator));
			break;
		case 3:
			animation.setInterpolator(AnimationUtils.loadInterpolator(this,
					android.R.anim.anticipate_interpolator));
			break;
		case 4:
			animation.setInterpolator(AnimationUtils.loadInterpolator(this,
					android.R.anim.overshoot_interpolator));
			break;
		case 5:
			animation.setInterpolator(AnimationUtils.loadInterpolator(this,
					android.R.anim.anticipate_overshoot_interpolator));
			break;
		case 6:
			animation.setInterpolator(AnimationUtils.loadInterpolator(this,
					android.R.anim.bounce_interpolator));
			break;
		}

		target.startAnimation(animation);
	}

	public void onNothingSelected(AdapterView parent) {
	}
}
分享到:
评论

相关推荐

    textview_kotlin_

    这里使用`findViewById`方法根据ID获取到TextView对象,然后可以对它进行各种操作,如更改文本: ```kotlin myTextView.text = "新文本" ``` Kotlin还提供了许多高级特性,使得操作TextView更加便捷。例如,我们...

    textview文字翻滚动画

    使用自定义库时,首先需要将`AnimTextView`添加到项目的依赖,然后在布局文件中使用,并通过代码设置动画参数。 三、消息轮播 1. **定时器与Handler** 消息轮播通常需要定时更换显示的文本。可以使用`Timer`和`...

    Android属性动画实现TextView类似支付宝余额数字滚动

    TextView是Android中最常见的文本显示组件,它可以用来显示单行或多行文本,支持各种格式化选项,如字体、颜色、对齐方式等。 实现数字滚动的关键在于巧妙地利用属性动画来改变TextView的文本内容。我们可以创建一...

    Android TextView文字飞入效果

    在Android中,可以使用`AlphaAnimation`、`ScaleAnimation`、`TranslateAnimation`等来实现各种动画效果。对于“飞入”效果,我们可能需要用到`TranslateAnimation`来改变文字的位置,使其看起来像是从屏幕外飞入。 ...

    Android类似星球大战字幕效果的TextView.zip

    在Android应用开发中,我们经常需要为用户提供各种各样的视觉体验来吸引他们的注意力。"Android类似星球大战字幕效果的TextView.zip"是一个示例项目,它展示了如何在Android平台上实现一种模仿经典电影《星球大战》...

    Titanic_textview.rar_水位特效

    这个效果可以应用于各种场景,比如游戏中的水位变化、天气应用的潮汐展示或是健康应用的水摄入进度指示。 首先,我们要理解TextView是Android SDK中的一个基础组件,通常用于显示单行或多行文本。在这个特效中,...

    一个简单而灵活的Checked TextView或Checkable TextView-Android开发

    CheckableTextView Checkable TextView [KOTLIN]:high_voltage:用Kotlin编写的简单灵活的Checked TextView或Checkable TextView:high_voltage:新增功能CheckableTextView Checkable TextView [KOTLIN]:high_voltage:...

    Android技术知识点:如何使用视图绑定来消除findViewById()

    本文将深入探讨视图绑定的工作原理、优点以及如何在Android Studio中启用和使用它。 视图绑定是Android框架提供的一种编译时机制,它可以自动地为XML布局中的每个视图生成一个绑定类。这个绑定类包含了所有视图的强...

    安卓动画效果相关-TimelyTextView数字动画递减功能Android.rar

    动画过程中,数字的变化通常不是线性的,而是通过插值器(Interpolator)来控制速度曲线。插值器可以使得动画加速、减速或者有其他动态效果。在`TimelyTextView`中,可能会根据需求选用不同的插值器,如`...

    android项目欢迎页面设计

    在`welcome_anime.xml`中,我们使用了`AccelerateInterpolator`和`DecelerateInterpolator`,这样TextView在移动和改变透明度时会有更自然的过渡效果。 在Java代码中,我们通过`AnimationUtils.loadAnimation()`...

    RotatingText.zip

    在Android开发中,UI设计是至关重要的一环,而TextView作为显示文本的基础组件,其灵活性和可定制性一直是开发者关注的重点。"RotatingText.zip"是一个专门为Android平台设计的库,它扩展了TextView的功能,提供了...

    Android_动画基础(一).

    在提供的`main.xml`文件中,可以看到一个使用`RelativeLayout`作为根布局的界面。`RelativeLayout`允许子视图相对彼此或父视图进行定位,提供更灵活的布局方式。在这个例子中,有两个子视图:一个`TextView`和一个`...

    文本垂直滚动

    在Android开发中,文本垂直滚动,也常被称为垂直跑马灯效果,是一种常见的UI动态展示方式,尤其适用于显示有限空间...在实际项目中,还可以考虑使用Android的Animation或者Interpolator类来实现更复杂的滚动动画效果。

    Android自动文本滚动控件(跑马灯)

    - 示例布局文件,展示了如何在XML布局中使用这个自定义控件。 - 示例Activity,用于加载并展示`AutoTextMoveView`,可能包含设置滚动速度、方向和状态的方法调用。 - 可能还包含了一些资源文件,如样式、颜色、字体...

    数字替换滚动效果

    在这里,我们可以使用它来改变TextView的文本内容,每次只修改一个数字,从而创建滚动效果。 5. **插值器(Interpolator)**: 插值器决定了动画中的变化速度。为了使数字滚动效果更加逼真,可以选择合适的插值器...

    AnimTextView_android_

    在Android平台上,通常我们使用TextView来显示静态文本,但当需要动态效果如滚动、闪烁等时,就需要创建自定义视图或者利用现有的动画库。AnimTextView就是这样一个针对动态文本展示的解决方案,它可以为应用增添...

    Android 搜索关键字飞入飞出效果源码.zip

    5. **Interpolator**:为了使动画看起来更自然,可能使用了Interpolator(插值器)。插值器可以改变动画的时间进度,例如,可以使动画在开始和结束时慢速,中间快速,或者反之。 6. **线程管理**:Android UI操作...

    Android应用源码之多点触控控制字体大小,源码中有详细注释,简单Demo.zip

    为了确保平滑过渡,可以使用插值器(Interpolator)来平滑动画效果。 7. **手势识别**: 可能会使用GestureDetector或ScaleGestureDetector类来辅助识别和处理特定的手势,例如双击和捏合动作。 8. **源码注释**...

    android中实现滑动标题栏颜色渐变(scrollview)

    在本示例中,我们将探讨如何使用ScrollView实现这一效果。ScrollView是一个可滚动的视图容器,可以包含一个或多个视图,允许用户通过滑动来查看超出屏幕范围的内容。 首先,我们需要创建一个自定义的TitleBar布局,...

    Android垂直滚动的图文混排字幕效果

    使用`LinearLayout`、`RelativeLayout`或`ConstraintLayout`作为根布局,然后在其中嵌套多个`TextView`和`ImageView`以实现图文混排。`TextView`用于显示文本,`ImageView`用于展示图片。可以使用`android:layout_...

Global site tag (gtag.js) - Google Analytics