Android实现抖动动画

使用动画让控件实现抖动,其实就是让横移(可心混合其它类型旋转等一起)的动画循环播放,使用Interpolator类来实现。

原理很简单,不多说了,代码如下:


Activity代码:

		this.btn.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				 TextView yearAndMouth = (TextView) JGWorkLogDateAndOperaPanel.this.findViewById(R.id.year_mounth_text);
				 Animation cycleAnim = AnimationUtils.loadAnimation(context, R.anim.img_anim);
				 yearAndMouth.startAnimation(cycleAnim);
			}
		});

imag_anim.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="100"
        android:fromYDelta="0"
        android:toYDelta="500"
        android:fromXDelta="0"
        android:toXDelta="1"
        android:repeatCount="5"
        android:repeatMode="restart"
        android:interpolator="@anim/cylce" />
    <rotate 
        android:duration="300"
        android:pivotX="100%p"
        android:pivotY="100%p"
        android:fromDegrees="90"
        android:interpolator="@anim/cylce" />

</set>

cylce.xml

<?xml version="1.0" encoding="utf-8"?>
<!--
官方解析 动画循环加速器:
——AccelerateInterpolator:动画从开始到结束,变化率是一个加速的过程。
——DecelerateInterpolator:动画从开始到结束,变化率是一个减速的过程。
——CycleInterpolator:动画从开始到结束,变化率是循环给定次数的正弦曲线。
——AccelerateDecelerateInterpolator:动画从开始到结束,变化率是先加速后减速的过程。
——LinearInterpolator:动画从开始到结束,变化率是线性变化。

-->
<cycleInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
    android:cycles="5" />


你可能感兴趣的:(android)