自定义动画,需要新建一个类,继承Animation类。
重写applyTransformation()方法和initialize()方法。
applyTransformation(float interpolatedTime, Transformation t)方法中
第一个参数:interpolatedTime代表动画的时间进行比。不管动画实际的持续时间如何,当动画播放时,该参数总是自动从0变化到1.
第二个参数:Transformation t代表了补间动画在不同时刻对图形或组件的变形程度。
button实现左右晃动效果
自定义的动画
public class CustomAnim extends Animation { @Override
public void initialize(int width, int height, int parentWidth,
int parentHeight) {
super.initialize(width, height, parentWidth, parentHeight);
} @Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
t.getMatrix().setTranslate((float) Math.sin(interpolatedTime*50)*50,0); super.applyTransformation(interpolatedTime, t);
} }
MainActivity中的button点击效果设置
public class MainActivity extends Activity { private CustomAnim ca; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); ca=new CustomAnim();
ca.setDuration(1000); findViewById(R.id.btnAnimationMe).setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
// TODO Auto-generated method stub
v.setAnimation(ca);
}
});
}
}