万书网 > 文学作品 > Android从入门到精通 > 第113页

第113页






android:id="@+id/imageView1"



android:layout_width="wrap_content"



android:layout_height="wrap_content"



android:background="@anim/motionright"



android:layout_marginTop="280px"



android:layout_marginLeft="30px"  />

(4)打开默认创建的MainActivity,在onCreate()方法中,首先获取要应用动画效果的ImageView,并获取向右奔跑和向左奔跑的补间动画资源,然后获取ImageView应用的逐帧动画以及线性布局管理器,并显示一个消息提示框,再为线性布局管理器添加触摸监听器,在重写的onTouch()方法中,开始播放逐帧动画并播放向右奔跑的补间动画,最后为向右奔跑和向左奔跑的动画添加动画监听器,并在重写的onAnimationEnd()方法中改变要使用的逐帧动画和补间动画、播放动画,实现野猪来回奔跑的动画效果。具体代码如下:

final  ImageView  iv=(ImageView)findViewById(R.id.imageView1);  //获取要应用动画效果的ImageView



//获取向右奔跑的动画资源



final  Animation  translateright=AnimationUtils.loadAnimation(this,  R.anim.translateright);



//获取向左奔跑的动画资源



final  Animation  translateleft=AnimationUtils.loadAnimation(this,  R.anim.translateleft);



anim=(AnimationDrawable)iv.getBackground();  //获取应用的帧动画



LinearLayout  ll=(LinearLayout)findViewById(R.id.linearLayout1);  //获取线性布局管理器



Toast.makeText(this,"触摸屏幕开始播放...",  Toast.LENGTH_SHORT).show();  //显示一个消息提示框



ll.setOnTouchListener(new  OnTouchListener()  {



@Override



public  boolean  onTouch(View  v,  MotionEvent  event)  {



anim.start();  //开始播放帧动画



iv.startAnimation(translateright);  //播放向右奔跑的动画



return  false;



}



});



translateright.setAnimationListener(new  AnimationListener()  {



@Override



public  void  onAnimationStart(Animation  animation)  {}



@Override



public  void  onAnimationRepeat(Animation  animation)  {}



@Override



public  void  onAnimationEnd(Animation  animation)  {



iv.setBackgroundResource(R.anim.motionleft);  //重新设置ImageView应用的帧动画



iv.startAnimation(translateleft);  //播放向左奔跑的动画



anim=(AnimationDrawable)iv.getBackground();  //获取应用的帧动画



anim.start();  //开始播放帧动画



}



});



translateleft.setAnimationListener(new  AnimationListener()  {



@Override



public  void  onAnimationStart(Animation  animation)  {}



@Override



public  void  onAnimationRepeat(Animation  animation)  {}



@Override



public  void  onAnimationEnd(Animation  animation)  {



iv.setBackgroundResource(R.anim.motionright);  //重新设置ImageView应用的帧动画



iv.startAnimation(translateright);  //播放向右奔跑的动画



anim=(AnimationDrawable)iv.getBackground();  //获取应用的帧动画



anim.start();  //开始播放帧动画



}



});

运行本实例,触摸屏幕后,屏幕中的野猪将从左侧奔跑到右侧,如图9.24所示,撞到右侧的栅栏后,转身向左侧奔跑,直到撞上左侧的栅栏,再转身向右侧奔跑,如此反复。



图9.24 迷途奔跑的野猪





9.6 小 结

本章主要介绍了在Android中进行图形图像处理的相关技术,包括如何绘制2D图像、为图形添加特效以及实现动画等内容。在介绍2D图像的绘制时,主要介绍了如何绘制几何图形、文本、路径和图片等,在进行游戏开发时,经常需要应用到这些内容,需要读者重点掌握;在介绍如何实现动画效果时,主要介绍了如何实现逐帧动画和补间动画,其中,逐帧动画主要通过图片的变化来形成动画效果,而补间动画则主要体现在位置、大小、旋转度、透明度变化方面,并且只需要指定起始帧和结束帧,其他过渡帧将由系统自动计算得出。





9.7 实践与练习

1.  编写Android项目,实现探照灯效果。(答案位置:光盘\TM\sl\9\9.20)

2.  编写Android项目,实现闪烁的星星动画。(答案位置:光盘\TM\sl\9\9.21)





第10章 多媒体应用开发

(  教学录像:1小时36分钟)

随着3G时代的到来,多媒体在手机和平板电脑上广泛应用。Android作为手机和平板电脑的一个操作系统,对于多媒体应用也提供了良好的支持。它不仅支持音频和视频的播放,而且还支持音频录制和摄像头拍照。本章将对Android中的音频、视频以及摄像头拍照等多媒体应用进行详细介绍。

通过阅读本章,您可以:

★  了解Android支持的音频和视频格式



★  掌握使用MediaPlayer播放音频的方法



★  掌握使用SoundPool播放音频的方法



★  掌握如何使用VideoView播放视频



★  掌握如何使用MediaPlayer和SurfaceView播放视频