Android四大动画详解
来源:互联网 发布:网络规划设计师教材 编辑:程序博客网 时间:2024/06/04 19:23
Android常用的四个动画类:
- AlphaAnimation 透明度动画
- ScaleAnimation 缩放动画
- TranslateAnimation 位移动画
- RotateAnimation 旋转动画
1.AlphaAnimation 透明度动画
代码:
public class MainActivity extends AppCompatActivity{ ImageView iv; AlphaAnimation alphaAnimation;//透明度动画 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); iv = (ImageView)findViewById(R.id.iv); alphaAnimation = new AlphaAnimation(0,1);//0为全透明 1为不透明 alphaAnimation.setDuration(5000);//动画持续时间// alphaAnimation.setRepeatCount(3);//重复播放次数// alphaAnimation.setFillAfter(true);//动画执行完是否停留在执行完的状态// alphaAnimation.setStartOffset(1000);//执行前的等待 } public void myClick(View v) { switch (v.getId()){ case R.id.start: iv.startAnimation(alphaAnimation); break; case R.id.stop: alphaAnimation.cancel(); break; } }}
效果图:
2.ScaleAnimation 缩放动画
构造方法参数讲解:
ScaleAnimation(float fromX, float toX, float fromY, float toY,int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)
- float fromX 动画起始时 X坐标上的伸缩尺寸
- float toX 动画结束时 X坐标上的伸缩尺寸
- float fromY 动画起始时Y坐标上的伸缩尺寸
- float toY 动画结束时Y坐标上的伸缩尺寸
- int pivotXType 动画在X轴相对于物件位置类型
- float pivotXValue 动画相对于物件的X坐标的开始位置
- int pivotYType 动画在Y轴相对于物件位置类型
- float pivotYValue 动画相对于物件的Y坐标的开始位置
代码:
public class MainActivity extends AppCompatActivity{ ImageView iv; ScaleAnimation saleAnimation;//透明度动画 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); iv = (ImageView)findViewById(R.id.iv); saleAnimation = new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); saleAnimation.setDuration(2000);//设置动画持续时间 saleAnimation.setRepeatCount(2);//设置重复次数 saleAnimation.setFillAfter(true);//动画执行完后是否停留在执行完的状态 saleAnimation.setStartOffset(2000);//执行前的等待时间 } public void myClick(View v) { switch (v.getId()){ case R.id.start: iv.startAnimation(saleAnimation);//开始动画 break; case R.id.stop: saleAnimation.cancel();//取消动画 break; } }}
效果图:
3. TranslateAnimation 位移动画
构造方法讲解:
TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)
- float fromXDelta 动画开始的点离当前View X坐标上的差值
- float toXDelta 动画结束的点离当前View X坐标上的差值
- float fromYDelta 动画开始的点离当前View Y坐标上的差值
- float toYDelta 动画开始的点离当前View Y坐标上的差值
代码:
public class MainActivity extends AppCompatActivity{ ImageView iv; TranslateAnimation translateAnimation;//透明度动画 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); iv = (ImageView)findViewById(R.id.iv); translateAnimation = new TranslateAnimation(0, 150,0, 0); translateAnimation.setDuration(2000);//设置动画持续时间 translateAnimation.setRepeatCount(2);//设置重复次数 translateAnimation.setRepeatMode(Animation.REVERSE);//设置反方向执行 } public void myClick(View v) { switch (v.getId()){ case R.id.start: iv.startAnimation(translateAnimation);//开始动画 break; case R.id.stop: translateAnimation.cancel();//取消动画 break; } }}
4.RotateAnimation 旋转动画
构造方法讲解:
RotateAnimation (float fromDegrees, float toDegrees, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)
- float fromDegrees:旋转的开始角度。
- float toDegrees:旋转的结束角度。
- int pivotXType:X轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。
- float pivotXValue:X坐标的伸缩值。
- int pivotYType:Y轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。
- float pivotYValue:Y坐标的伸缩值。
代码:
public class MainActivity extends AppCompatActivity{ ImageView iv; RotateAnimation rotateAnimationAnimation;//透明度动画 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); iv = (ImageView)findViewById(R.id.iv); rotateAnimationAnimation =new RotateAnimation(0f,360f,Animation.RELATIVE_TO_SELF, 0.5f,Animation.RELATIVE_TO_SELF,0.5f); rotateAnimationAnimation.setDuration(3000);//设置动画持续时间 /** 常用方法 */ rotateAnimationAnimation.setRepeatCount(2);//设置重复次数 rotateAnimationAnimation.setFillAfter(true);//动画执行完后是否停留在执行完的状态 rotateAnimationAnimation.setStartOffset(1000);//执行前的等待时间 } public void myClick(View v) { switch (v.getId()){ case R.id.start: iv.startAnimation(rotateAnimationAnimation);//开始动画 break; case R.id.stop: rotateAnimationAnimation.cancel();//取消动画 break; } }}
效果图:
0 0
- Android四大动画详解
- Android四大视图动画图文详解
- Android四大组件详解
- android四大组件详解
- Android四大组件详解
- Android四大组件详解
- Android四大组件详解
- Android四大组件详解
- Android四大组件详解
- Android四大组件详解
- Android四大组件详解
- Android四大组件详解
- Android 四大组件详解
- Android四大组件详解
- Android四大组件详解
- Android四大组件详解
- Android四大组件详解
- Android四大组件详解
- logger.isDebugEnabled()的作用
- zStack 扩展开发流程-zstack-java部分
- python-正则表达式 匹配多个字符串的语法规则
- BOOST 线程完全攻略 - 基础篇 .
- oracle一些常用函数用法
- Android四大动画详解
- File操作 - list()/listFiles()
- exlipse第一次如何导入JAVA项目,并运行
- gridview的属性
- gexf
- Hadoop之MapReduce快速入门
- Android TabLayout使用以及自定义TabLayout的item
- JAVA从数据库中拿到数据
- 电子招投标中的时间节点汇总