Android动画使用

Android平台提供了两种动画,一种是tween动画,即通过对场景里的对象不断进行图形转换(平移,缩放,旋转)来产生动画效果;
第二种就是
Frame动画,即顺序播放播放事先做好的图像,和电影类型
首先来分析Tween动画,Tween动画通过对view的内容完成一系列的图形转换(包括平移、缩放、旋转、改变透明度)来实现动画效
果。他主要类似以下四中动画效果:
Alpha:渐变透明度动画效果
Scale:渐变尺寸伸缩动画效果
Translate:画面转移位置移动动画效果
Rotate:画面转移旋转动画效果

Tween动画是通过预先定义一组指令,这些指令定了图形变换的类型,触发时间,持续时间。程序沿着时间线执行这些指令就可以实现动画效果。因此我们首先需要定义Animation动画对象,然后设置该动画的一些属性,最后通过startAnimation方法来开始动画。书上的例子大多数是以xml的形式配置的。这里我用代码实现一下


AlphaAnimation(floatfromAlha,float toAlpha)

功能:构建一个渐变透明度动画

参数:fromAlpha为开始起始透明度,toAlpha为动画结束透明度(0.0表示为完全透明,1.0表示完全不透明)

ScaleAnimation(floatfromx,float tox,float fromy,float toy, it int pivotXType,float pivotXValue,intpivotYType,float pivotYValue)

功能:构建一个渐变尺寸伸缩动画

参数:fromx,tox分别是起始和结束的x坐标上的伸缩尺寸,formytoy对应为Y坐标上开始和结束的伸缩尺寸。

pivotXValue,pivotYValue分别为动画相对物件的x,y坐标的开始位置。即”缩放中心坐标。pivotXTypepivotYType分别为x,y的伸缩模式。


TranslateAnimation (float fromXDelta ,float toxDelta,float fromYDelta , toYDelta )
功能 : 构建一个动画画面转化位置的移动动画
RotateAnimation (float fromDegress ,float toDegress , int pivotXType ,float pivotXValue , int pivotYType ,float pivotYValue )
功能 : 构建一个旋转动画 .
参数 : fromDegress 为开始角度, toDegress 为结束的角度。 pivotXType pivotYType 分别为 x,y 的伸缩模式, pivotXValue pivotYValue 分别为伸缩动画相对于 x,y 的坐标的开位置。

Andorid-tween动画



Android动画-Frame动画

Frame 动画是顺序播放图片来产生一种动画,类似于电影。例如要实现一个人走路的动画可以通过三张图片实现:第一张是两脚着地,第二张是左脚着地,第三张是右脚着地。这样顺序播放了人走路的动画了, frame 动画是通过 AnimationDrawable 类实现。该类中有两个方法是 start() stop() ,分别用来控制开始和结束动画。动画一般是通过 xml 配置文件来进行配置的。在 res/ anim 目录中定义 xml 文件,该文件的根元素是 <animation-list> ,子元素师 <item> ,子元素可以有多个。
代码一般通过以下方式 .
AnimationDrawable anim = ( AnimationDrawable ) myview.getbackgroud ()
Anim.start ();//stop 来控制


Android动态图像绘制

动态图形绘制的基本思路是,创建一个 view 类或者 surfaceview 类,重写 onDraw () 方法,使用 canvas 对象在界面上绘制不同图形,使用 invalidate() 方法刷新界面。动态绘制图形常见的有 canvas,paint , color,path 等。
Canvas:canvas 类是画布,提供了各种图形的绘制方法,如矩形,圆,椭圆,点,线,文字等。具体分方法见见 ADK 开发文档。
使用 canves 一般会调用 draw+name 方法,
比如 canvas.drawcolor (); 绘制画布的颜色。
Paint :paint 类是画笔,用来描述图形的颜色和风格,如线宽,颜色,字体等信息。
Color :Color 类中定义了一些颜色常量和创建的颜色犯法,颜色使用 RGB 定义。
Path : 一般用来从某个点移动到另一个点连线,例如画梯形需要有点和连线。常用方法如下
使用 canvas 要继承 view 类,以及子类,并重写 ondraw 方法
代码如下 :
Paint mypPaint = new Paint();
mypPaint.setColor ( Color.WHITE );
for( int i = 0; i < 300; i ++){
  float x = (float) ( Math.random ()* displayMetrics.widthPixels );
  float y = (float) ( Math.random ()* displayMetrics.heightPixels );
  canvas.drawText ("*",  x, y, mypPaint );
  }
  canvas.drawCircle (100,100, 50, mypPaint );
  mypPaint.setColor ( Color.BLACK );
canvas.drawCircle (70,100, 50, mypPaint );


1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值