Android手机游戏开发知识点总结(8)
* toXDelta,toYDelta 分别为终点时x,y坐标 */
case KeyEvent.KEYCODE_DPAD_LEFT:
animationTranslate = new TranslateAnimation(10, 100, 10, 100);//创建Translate动画
animationTranslate.setDuration(1000);//动画持续时间 this.startAnimation(animationTranslate);//开始播放动画 break; /*
* Rotate旋转动画效果
* RotateAnimation(fromDegrees, toDegrees, pivotXType, pivotXValue, pivotYType, pivotYValue) * fromDegrees 开始角度 * toDegrees 结束角度
* pivotXValue , pivotYValue 伸缩动画相对于x,y的坐标坐标开始位置 * pivotXType,pivotYType 分别为x,y的伸缩模式 */
case KeyEvent.KEYCODE_DPAD_RIGHT: animationRotate = new RotateAnimation(0.0f, 360f, Animation.RELATIVE_TO_SELF,
0.5f, Animation.RELATIVE_TO_SELF, 0.5f);//创建Rotate动画 animationRotate.setDuration(1000);//动画持续时间 this.startAnimation(animationRotate);//动画播放 }
return true; }
} 需在Activity种实例化
------------------------------------------------------------------------------------------------------- 第二种方法 xml设计 aipha.xml
android:toAlpha=\android:duration=\/>
rotate.xml
android:interpolator=\ android:fromDegrees=\ android:toDegrees=\ android:pivotX=\ android:pivotY=\ android:duration=\
android:interpolator=\ android:fromXScale=\android:toXScale=\ android:fromYScale=\android:toYScale=\ android:pivotX=\android:pivotY=\ android:fillAfter=\android:duration=\
public class GameView extends View{
private Animation mAnimationAlpha = null;//定义Alpha动画 private Animation mAnimationScale = null;//定义Scale动画 private Animation mAnimationTranslate = null;//定义Translate动画 private Animation mAnimationRotate = null;//定义Rotate动画
Bitmap mBitQQ = null;//定义Bitmap对象 Context mContext = null;
public GameView(Context context){ super(context); mContext = context;
mBitQQ = ((BitmapDrawable)
getResources().getDrawable(R.drawable.qq)).getBitmap();//装载资源 }
public void onDraw(Canvas canvas){ super.onDraw(canvas);
canvas.drawBitmap(mBitQQ, 0, 0, null);//绘制图片 }
public boolean onKeyUp(int keyCode, KeyEvent event){ switch ( keyCode ){
case KeyEvent.KEYCODE_DPAD_UP:
mAnimationAlpha = AnimationUtils.loadAnimation(mContext,R.layout.alpha);//装载动画布局
this.startAnimation(mAnimationAlpha);//开始播放动画 break;
case KeyEvent.KEYCODE_DPAD_DOWN:
mAnimationScale = AnimationUtils.loadAnimation(mContext,R.layout.scale);//装载动画布局
this.startAnimation(mAnimationScale);//开始播放动画 break;
case KeyEvent.KEYCODE_DPAD_LEFT: mAnimationTranslate =
AnimationUtils.loadAnimation(mContext,R.layout.translate);//装载动画布局 this.startAnimation(mAnimationTranslate);//开始播放动画 break;
case KeyEvent.KEYCODE_DPAD_RIGHT: mAnimationRotate =
AnimationUtils.loadAnimation(mContext,R.layout.rotate);//装载动画布局 this.startAnimation(mAnimationRotate);//开始播放动画 break; }
return true; } }
=================================================================================================================================== Framed动画
第一种方法 在代码中设计
public class GameView extends View{
private AnimationDrawable animationDrawable = null;//定义AnimationDrawable装载动画 Context mContext = null;
Drawable mBitAnimation = null;//定义一个Drawable对象 public GameView(Context context){ super(context); mContext = context;
animationDrawable = new AnimationDrawable();//实例化AnimationDrawable对象
for (int i = 1; i <= 15; i++){//利用循环装载所有名字类似的资源(图片命名时是有规律的 所以才能用此循环)
int id = getResources().getIdentifier(\mContext.getPackageName());------------------------需要深入 mBitAnimation = getResources().getDrawable(id);
animationDrawable.addFrame(mBitAnimation, 500);//通过addFrame方法把每一帧添加进去,每一帧显示的时间为500毫秒 }
animationDrawable.setOneShot( false );//利用setOneShot方法设置播放模式是否循环false表示循环而true表示不循环
this.setBackgroundDrawable(animationDrawable);// 加载本类将要显示这个动画 }
public void onDraw(Canvas canvas){ super.onDraw(canvas); }
public boolean onKeyUp(int keyCode, KeyEvent event){ switch ( keyCode ){
case KeyEvent.KEYCODE_DPAD_UP:
animationDrawable.start();//最后通过start方法播放动画 break; }
return true; }
} 要想显示Frame动画,还要在Activity中添加GameView对象 ------------------------------------------------------------------------------ 第二种方法:在XML文件中的设计 frameanimation.xml
相关推荐:
- [建筑文档]2018年公需课:专业技术人员创新能力与
- [建筑文档]2013年福建教师招考小学数学历年真题
- [建筑文档]高中信息技术课flash知识点总结 - 图文
- [建筑文档]电工实训 - 图文
- [建筑文档]最高院公告案例分析100篇(民商篇)
- [建筑文档]南开中学高2017级14-15学年(上)期末
- [建筑文档]五粮液集团战略分析
- [建筑文档]鲁教版(2012秋季版)九年级化学 酸碱
- [建筑文档]超星尔雅2017中国哲学概论自整理题库答
- [建筑文档]关于成为海口金盘饮料公司材料独家供货
- [建筑文档]LNG学习资料第一册 基础知识 - 图文
- [建筑文档]四年级品社下册《好大一个家》复习资料
- [建筑文档]现阶段领导权力腐败的特点及发展趋势
- [建筑文档]魏晋南北朝诗歌鉴赏—嵇康
- [建筑文档]坚持追求真爱是理智的行为 正方一辩稿
- [建筑文档]湘西州刑释解教人员帮教安置工作存在的
- [建筑文档]园林工程试题库及答案
- [建筑文档]计算机长期没有向WSUS报告状态
- [建筑文档]日语最新流行语
- [建筑文档]B62-016 景观进场交底专题会议
- 2018年中考语文课内外古诗词鉴赏专题复
- 高考试题研究心得体会
- C语言基础题及答案
- 电气控制及PLC习题及答案
- 都昌小学家长学校汇报材料
- GMAT作文模板正确使用方法
- 俄军办坦克大赛:中国99式有望与豹2A6
- 成本会计练习题
- 酒店餐饮业最流行的5S管理方法
- 2014-2015学年山东省菏泽市高二(下)
- 《黄鹤楼送孟浩然之广陵》教案、说课、
- 2013年结构化学自测题 有答案版
- 2011西安世界园艺博览会游览解说词(附
- 窗口文明单位示范单位创建活动总结
- 2018满分超星尔雅就业课后练习期末答案
- 韶山市城市总体规划-基础资料
- 苏教版第三单元知识点归纳
- 第4章 曲轴模态分析
- 加大查办案件力度的思考
- 武汉CPC导轨介绍




