第5章动画
121使用ObjectAnimator创建上下振动动画
此实例主要通过使用PropertyValuesHolder创建多个平移和旋转等动画,并使用ObjectAnimator类的ofPropertyValuesHolder()方法组合这些动画,从而产生振动效果。当实例运行之后,单击“开始播放动画”按钮,则图像(电话机)将不停地上下振动,效果分别如图121.1的左图和右图所示。
图121.1
主要代码如下:
public class MainActivity extends Activity {
ImageView myImageView;
ObjectAnimator myAnimator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myImageView = (ImageView) findViewById(R.id.myImageView);
PropertyValuesHolder myHolder1 =
PropertyValuesHolder.ofFloat("y", 540, 550);
PropertyValuesHolder myHolder2 =
PropertyValuesHolder.ofFloat("rotationY", 0, 25);
PropertyValuesHolder myHolder3 =
PropertyValuesHolder.ofFloat("rotationX", 0, 15);
myAnimator = ObjectAnimator.ofPropertyValuesHolder(myImageView,
myHolder1,myHolder2,myHolder3);
myAnimator.setRepeatCount(ObjectAnimator.INFINITE);
myAnimator.setRepeatMode(ObjectAnimator.REVERSE);
myAnimator.setDuration(90);
Button myBtn1 = (Button) findViewById(R.id.myBtn1);
//响应单击"开始播放动画"按钮
myBtn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) { myAnimator.start(); } });
Button myBtn2 = (Button) findViewById(R.id.myBtn2);
//响应单击"停止播放动画"按钮
myBtn2.setOnClickListener( new View.OnClickListener() {
public void onClick(View arg0) { myAnimator.cancel(); } });
} }
……
展开