其功能和android.animation.*中的类的功能完全一致,使用方法完全相同,只是我们使用nineoldandroids编写动画,可以在所有的Android平台上运行。
import com.nineoldandroids.animation.AnimatorSet;
import com.nineoldandroids.animation.ArgbEvaluator;
import com.nineoldandroids.animation.ObjectAnimator;
import com.nineoldandroids.animation.ValueAnimator;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener {
private Button btn;
private Button btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.btn1);
btn2 = (Button) findViewById(R.id.btn2);
btn.setOnClickListener(this);
btn2.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btn1:
// ObjectAnimator.ofFloat(btn, "translationY", btn.getHeight()).start();
ValueAnimator colorAnim = ObjectAnimator.ofInt(btn, "backgroundColor", 0xFFFF8080, 0xFF8080FF);
colorAnim.setDuration(3000);
colorAnim.setEvaluator(new ArgbEvaluator());
colorAnim.setRepeatCount(ValueAnimator.INFINITE);
colorAnim.setRepeatMode(ValueAnimator.REVERSE);
colorAnim.start();
break;
case R.id.btn2:
AnimatorSet set = new AnimatorSet();
set.playTogether(
ObjectAnimator.ofFloat(btn2, "rotationX", 0, 360),
ObjectAnimator.ofFloat(btn2, "rotationY", 0, 180),
ObjectAnimator.ofFloat(btn2, "rotation", 0, -90),
ObjectAnimator.ofFloat(btn2, "translationX", 0, 90),
ObjectAnimator.ofFloat(btn2, "translationY", 0, 90),
ObjectAnimator.ofFloat(btn2, "scaleX", 1, 1.5f),
ObjectAnimator.ofFloat(btn2, "scaleY", 1, 0.5f),
ObjectAnimator.ofFloat(btn2, "alpha", 1, 0.5f, 1)
);
set.setDuration(5 * 1000).start();
break;
default:
break;
}
}
}
nineoldandroids.jar下载地址:
http://download.csdn.net/download/foolsheep/6886017