android Animation 动画效果介绍 续 .

关于动画的实现,Android提供了Animation,在Android SDK介绍了2种Animation模式:

1. Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果,即是一种渐变动画;

2. Frame Animation:顺序播放事先做好的图像,是一种画面转换动画。

动画类型
下面先来看看Android提供的动画类型。Android的animation由四种类型组成

在XML文件中:

•alpha        渐变透明度动画效果
•scale        渐变尺寸伸缩动画效果
•translate  画面转换位置移动动画效果
•rotate      画面转移旋转动画效果

 
Android动画解析--JavaCode
AlphaAnimation
① AlphaAnimation类对象定义
  1. private AlphaAnimation myAnimation_Alpha;  
private AlphaAnimation myAnimation_Alpha;

② AlphaAnimation类对象构造
  1. AlphaAnimation(float fromAlpha, float toAlpha)   
  2. //第一个参数fromAlpha为 动画开始时候透明度   
  3. //第二个参数toAlpha为 动画结束时候透明度   
  4. myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);  
  5. //说明:    
  6. // 0.0表示完全透明   
  7. // 1.0表示完全不透明  
AlphaAnimation(float fromAlpha, float toAlpha) 
//第一个参数fromAlpha为 动画开始时候透明度
//第二个参数toAlpha为 动画结束时候透明度
myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);
//说明: 
// 0.0表示完全透明
// 1.0表示完全不透明

③ 设置动画持续时间
  1. myAnimation_Alpha.setDuration(5000);  
  2. //设置时间持续时间为 5000毫秒  
myAnimation_Alpha.setDuration(5000);
//设置时间持续时间为 5000毫秒
 
使用:
   AlphaAnimation alphaAnimation=new AlphaAnimation(0.1f, 1.0f);
        alphaAnimation.setDuration(3000);
        
        imageLogo.setAnimation(alphaAnimation);

ScaleAnimation
① ScaleAnimation类对象定义
  1. private AlphaAnimation myAnimation_Alpha;  
private AlphaAnimation myAnimation_Alpha;

② ScaleAnimation类对象构造
  1. ScaleAnimation(float fromX, float toX, float fromY, float toY,  
  2. int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)   
  3. //第一个参数fromX为动画起始时 X坐标上的伸缩尺寸    
  4. //第二个参数toX为动画结束时 X坐标上的伸缩尺寸    
  5. //第三个参数fromY为动画起始时Y坐标上的伸缩尺寸    
  6. //第四个参数toY为动画结束时Y坐标上的伸缩尺寸    
  7. /*说明: 
  8. 以上四种属性值  
  9. 0.0表示收缩到没有  
  10. 1.0表示正常无伸缩  
  11. 值小于1.0表示收缩  
  12. 值大于1.0表示放大 
  13. */  
  14. //第五个参数pivotXType为动画在X轴相对于物件位置类型    
  15. //第六个参数pivotXValue为动画相对于物件的X坐标的开始位置  
  16. //第七个参数pivotXType为动画在Y轴相对于物件位置类型    
  17. //第八个参数pivotYValue为动画相对于物件的Y坐标的开始位置  
  18. myAnimation_Scale =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,  
  19. Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);  
ScaleAnimation(float fromX, float toX, float fromY, float toY,
int pivotXType, float pivotXValue, int pivotYType, float pivotYValue) 
//第一个参数fromX为动画起始时 X坐标上的伸缩尺寸 
//第二个参数toX为动画结束时 X坐标上的伸缩尺寸 
//第三个参数fromY为动画起始时Y坐标上的伸缩尺寸 
//第四个参数toY为动画结束时Y坐标上的伸缩尺寸 
/*说明:
以上四种属性值 
0.0表示收缩到没有 
1.0表示正常无伸缩 
值小于1.0表示收缩 
值大于1.0表示放大
*/
//第五个参数pivotXType为动画在X轴相对于物件位置类型 
//第六个参数pivotXValue为动画相对于物件的X坐标的开始位置
//第七个参数pivotXType为动画在Y轴相对于物件位置类型 
//第八个参数pivotYValue为动画相对于物件的Y坐标的开始位置
myAnimation_Scale =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
③ 设置动画持续时间
  1. myAnimation_Scale.setDuration(700);  
  2. //设置时间持续时间为 700毫秒  
myAnimation_Scale.setDuration(700);
//设置时间持续时间为 700毫秒

TranslateAnimation
① TranslateAnimation类对象定义
  1. private AlphaAnimation myAnimation_Alpha;  
private AlphaAnimation myAnimation_Alpha;

② TranslateAnimation类对象构造
  1. TranslateAnimation(float fromXDelta, float toXDelta,  
  2. float fromYDelta, float toYDelta)   
  3. //第一个参数fromXDelta为动画起始时 X坐标上的移动位置   
  4. //第二个参数toXDelta为动画结束时 X坐标上的移动位置    
  5. //第三个参数fromYDelta为动画起始时Y坐标上的移动位置   
  6. //第四个参数toYDelta为动画结束时Y坐标上的移动位置   
TranslateAnimation(float fromXDelta, float toXDelta,
float fromYDelta, float toYDelta) 
//第一个参数fromXDelta为动画起始时 X坐标上的移动位置 
//第二个参数toXDelta为动画结束时 X坐标上的移动位置 
//第三个参数fromYDelta为动画起始时Y坐标上的移动位置 
//第四个参数toYDelta为动画结束时Y坐标上的移动位置 

③ 设置动画持续时间
  1. myAnimation_Translate.setDuration(2000);  
  2. //设置时间持续时间为 2000毫秒  
myAnimation_Translate.setDuration(2000);
//设置时间持续时间为 2000毫秒

RotateAnimation
① RotateAnimation类对象定义
  1. private AlphaAnimation myAnimation_Alpha;  
private AlphaAnimation myAnimation_Alpha;

②  RotateAnimation类对象构造
  1. RotateAnimation(float fromDegrees, float toDegrees,   
  2. int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)  
  3. //第一个参数fromDegrees为动画起始时的旋转角度   
  4. //第二个参数toDegrees为动画旋转到的角度    
  5. //第三个参数pivotXType为动画在X轴相对于物件位置类型   
  6. //第四个参数pivotXValue为动画相对于物件的X坐标的开始位置   
  7. //第五个参数pivotXType为动画在Y轴相对于物件位置类型   
  8. //第六个参数pivotYValue为动画相对于物件的Y坐标的开始位置   
  9. myAnimation_Rotate=new RotateAnimation(0.0f, +350.0f,  
  10. Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);  
RotateAnimation(float fromDegrees, float toDegrees, 
int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)
//第一个参数fromDegrees为动画起始时的旋转角度 
//第二个参数toDegrees为动画旋转到的角度 
//第三个参数pivotXType为动画在X轴相对于物件位置类型 
//第四个参数pivotXValue为动画相对于物件的X坐标的开始位置
//第五个参数pivotXType为动画在Y轴相对于物件位置类型 
//第六个参数pivotYValue为动画相对于物件的Y坐标的开始位置
myAnimation_Rotate=new RotateAnimation(0.0f, +350.0f,
Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);

③  设置动画持续时间
  1. myAnimation_Rotate.setDuration(3000);  
  2. //设置时间持续时间为 3000毫秒  
myAnimation_Rotate.setDuration(3000);
//设置时间持续时间为 3000毫秒

如何使用Java代码中的动画效果
使用从View父类继承过来的方法startAnimation()来为View或是子类View等等添加一个动画效果
  1. public void startAnimation (Animation animation)   
public void startAnimation (Animation animation) 

 
从以上学到的是:不一定要死记住这些代码如何使用,而是需要使用的时候会马上想到有这几种方式,然后搜索解决问题。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值