使用動畫讓控制項實現抖動,其實就是讓橫移(可心混合其它類型旋轉等一起)的動畫迴圈播放,使用Interpolator類來實現。
原理很簡單,不多說了,代碼如下:
Activity代碼:
this.btn.setOnClickListener(new OnClickListener() {@Overridepublic 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" />