【实验目的】本实验旨在让学生掌握Android平台上的动画技术,包括逐帧动画、补间动画、属性动画的使用,以及如何利用Shape和菜单设计。同时,实验也要求学生理解触摸事件的处理,以及如何通过编程控制动画的执行速度和范围。 【实验内容详解】 1. **逐帧动画**:使用FrameAnimation实现小鸟的飞翔动画。通过在RelativeLayout中设置background为白云,将精灵图片(如sprite1.png~sprite8.png)串联起来,形成连续的动画效果。 2. **TouchDown事件与TranslateAnimation**:当用户按下屏幕时,通过TouchEvent的TouchDown事件触发小鸟的飞行,使用TranslateAnimation让小鸟在屏幕上移动。 3. **ImageView的setRotationY()**:通过调整ImageView的rotationY属性,改变小鸟的飞行方向,实现上下翻飞的效果。 4. **限制飞行范围**:获取屏幕尺寸,设定边界,防止小鸟飞出屏幕。可以通过创建一个全屏的ImageView来获取屏幕大小,以此控制小鸟的飞行范围。 5. **控制飞行速度**:根据屏幕对角线长度计算出飞行时间,按飞行距离调整每段动画的时间,使距离短的飞行速度快,距离长的飞行速度慢。 6. **属性动画(Property Animation)**:使用属性动画平滑地改变鸟的飞行方向,通过设置500ms的动画时长,确保飞行动画与方向变化的平滑过渡。启动飞行动画需延迟500ms以匹配属性动画。 7. **菜单设计**:添加开始录像、结束录像、录像重放和结束回放的选项菜单,使用Android的菜单机制实现。 8. **录制指示小红点**:设计一个逐帧动画,用于表示录像状态。在录制时显示红色小圆点,非录制状态下显示灰色或透明。 9. **显示与隐藏小红点**:仅在录像时显示小红点,结束录像后立即隐藏。 10. **路径记录**:用Pos类存储飞行路径,ArrayList<Pos>保存所有路径点。 11. **清除原有记录**:每次开始新的录像时,清空之前的飞行记录。 12. **重播飞行过程**:通过菜单选项“录像重放”,重新播放飞行路径。动画结束后通过onAnimationEnd()事件接续播放。 13. **显示飞行路线**:创建自定义View作为背景,绘制Path对象表示飞行路径,使用lineTo添加路径点,并通过invalidate()刷新视图,可使用setStrokeJoin和setStrokeCap使线条平滑。 14. **结束重放功能**:允许用户在重放过程中随时停止,并清除路径显示。 15. **恢复初始状态**:重播结束后,返回到播放前的状态,包括触摸操作的有效性等。 16. **播放录像时的触摸控制**:在播放录像时禁用触摸操作,避免干扰。 17. **飞行中触摸控制**:在小鸟飞行过程中,同样禁用触摸操作,保持动画的连贯性。 18. **录像期间禁止重放**:在录制过程中不允许重放已录制的录像,以防止数据混乱。 通过这个实验,学生不仅能掌握Android动画的各种技巧,还能提升对触摸事件、菜单设计、自定义View以及状态管理的理解和实践能力。
剩余9页未读,继续阅读
- 粉丝: 24
- 资源: 301
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0