Android动画-旋转、平移、放缩和渐变
来源:互联网 发布:神枪手红包软件 编辑:程序博客网 时间:2024/05/21 21:05
转载:http://yidongkaifa.iteye.com/blog/1788996
Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。下面就讲一下Tweene Animations。主要类:Animation 动画AlphaAnimation 渐变透明度RotateAnimation 画面旋转ScaleAnimation 渐变尺寸缩放TranslateAnimation 位置移动AnimationSet 动画集一.AlphaAnimation其中AlphaAnimation类第一个参数fromAlpha表示动画起始时的透明度, 第二个参数toAlpha表示动画结束时的透明度。setDuration用来设置动画持续时间。二.RotateAnimation其中RotateAnimation类第一个参数fromDegrees表示动画起始时的角度, 第二个参数toDegrees表示动画结束时的角度。另外还可以设置伸缩模式pivotXType、pivotYType, 伸缩动画相对于x,y 坐标的开始位置pivotXValue、pivotYValue等。三.ScaleAnimationScaleAnimation类中第一个参数fromX ,第二个参数toX:分别是动画起始、结束时X坐标上的伸缩尺寸。第三个参数fromY ,第四个参数toY:分别是动画起始、结束时Y坐标上的伸缩尺寸。另外还可以设置伸缩模式pivotXType、pivotYType, 伸缩动画相对于x,y 坐标的开始位置pivotXValue、pivotYValue等。四.TranslateAnimation第一个参数fromXDelta ,第二个参数toXDelta:分别是动画起始、结束时X坐标。第三个参数fromYDelta,第四个参数toYDelta:分别是动画起始、结束时Y坐标。
java代码:
public class Animations_Activity extends Activity { private Button button1; private Button button2; private Button button3; private Button button4; private Button button5; private ImageView imageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_animations_); button1=(Button)findViewById(R.id.button_alpha); button2=(Button)findViewById(R.id.button_rotate); button3=(Button)findViewById(R.id.button_scale); button4=(Button)findViewById(R.id.button_translate); button5=(Button)findViewById(R.id.button_alpha_translate); imageView=(ImageView)findViewById(R.id.imageview); button1.setOnClickListener(new MyButton()); button2.setOnClickListener(new MyButton()); button3.setOnClickListener(new MyButton()); button4.setOnClickListener(new MyButton()); button5.setOnClickListener(new MyButton()); } class MyButton implements OnClickListener{ @Override public void onClick(View arg0) { // TODO Auto-generated method stub switch (arg0.getId()) { case R.id.button_alpha: Alpha(); break; case R.id.button_rotate: Rotata(); break; case R.id.button_scale: Scale(); break; case R.id.button_translate: Translate(); break; case R.id.button_alpha_translate: Alpha_Translate(); break; default: break; } } } /* * 1.创建一个AnimationSet对象,该对象存储的是动画的集合 * 2.根据需要创建相应的Animation对象 * 3.根据动画的需求,为Animation对象设置相应的数据(即执行效果) * 4.奖Animation对象添加到AnimationSet对象当中 * 5.使用控件对象开始执行AnimationSet */ public void Alpha() { AnimationSet animationSet=new AnimationSet(true); AlphaAnimation alphaAnimation=new AlphaAnimation(1, 0); alphaAnimation.setDuration(2000); animationSet.addAnimation(alphaAnimation); imageView.startAnimation(animationSet); } public void Rotata(){ AnimationSet animationSet=new AnimationSet(true); //后面的四个参数定义的是旋转的圆心位置 RotateAnimation rotateAnimation=new RotateAnimation( 0, 360, Animation.RELATIVE_TO_PARENT, 1f, Animation.RELATIVE_TO_PARENT, 0f); rotateAnimation.setDuration(2000); animationSet.addAnimation(rotateAnimation); imageView.startAnimation(animationSet); } public void Scale() { AnimationSet animationSet=new AnimationSet(true); ScaleAnimation scaleAnimation=new ScaleAnimation( 1, 0.1f, 1, 0.1f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); scaleAnimation.setDuration(2000); animationSet.addAnimation(scaleAnimation); imageView.startAnimation(scaleAnimation); } public void Translate() { AnimationSet animationSet=new AnimationSet(true); TranslateAnimation translateAnimation=new TranslateAnimation( Animation.RELATIVE_TO_SELF, 0f, //X轴的开始位置 Animation.RELATIVE_TO_SELF, 0.5f, //X轴的结束位置 Animation.RELATIVE_TO_SELF, 0f, //Y轴的开始位置 Animation.RELATIVE_TO_SELF, 1.0f); //Y轴的结束位置 translateAnimation.setDuration(2000); animationSet.addAnimation(translateAnimation); /* * 第一行的设置如果为true,则动画执行完之后效果定格在执行完之后的状态 * 第二行的设置如果为false,则动画执行完之后效果定格在执行完之后的状态 * 第三行设置的是一个long类型的值,是指动画延迟多少毫秒之后执行 * 第四行定义的是动画重复几次执行 */ animationSet.setFillAfter(true); animationSet.setFillBefore(false); animationSet.setStartOffset(2000); animationSet.setRepeatCount(3); imageView.startAnimation(animationSet); } public void Alpha_Translate() { AnimationSet animationSet=new AnimationSet(true); AlphaAnimation alphaAnimation=new AlphaAnimation(1, 0); alphaAnimation.setDuration(2000); animationSet.addAnimation(alphaAnimation); TranslateAnimation translateAnimation=new TranslateAnimation( Animation.RELATIVE_TO_SELF, 0f, //X轴的开始位置 Animation.RELATIVE_TO_SELF, 0.5f, //X轴的结束位置 Animation.RELATIVE_TO_SELF, 0f, //Y轴的开始位置 Animation.RELATIVE_TO_SELF, 1.0f); //Y轴的结束位置 translateAnimation.setDuration(2000); animationSet.addAnimation(translateAnimation); imageView.startAnimation(animationSet); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_animations_, menu); return true; } }
0 0
- Android动画-旋转、平移、放缩和渐变
- 赵雅智_Tween动画(旋转、平移、放缩和渐变)
- 【Android开发】动画范例2-旋转、平移、缩放和透明度渐变的补间动画
- Android 旋转、平移、缩放和透明度渐变的补间动画
- Android | Vuforia 模型平移、旋转、放缩
- Android 实现属性动画平移,旋转,缩放,渐变 《H》
- 旋转、平移、缩放和透明度渐变的补间动画
- android动画1-平移和旋转
- Android 补间动画(动画列表,平移,旋转,缩放,渐变,动画集合)
- 讲述属性动画的使用 —使用动画旋转、平移、渐变和缩放
- android自定义动画平移旋转
- android游戏开发5-10 补间动画 透明度渐变 旋转 缩放 平移
- Android中属性动画1----ObjectAnimator的基本使用(平移,缩放,渐变,旋转)
- Android中补间动画1----Animation的基本使用代码实现(平移,缩放,渐变,旋转)
- openlayers3和openlayers4,导航栏使用放缩平移动画
- 动画效果之渐变、缩放、平移、旋转<代码实现>
- 旋转平移,缩放,透明度渐变的补间动画
- 动画效果之渐变、缩放、平移、旋转<代码实现>
- mybatis配置存储过程
- C++文件流方式写入excel文件
- Oracle数据库查询表结构、字段及注释信息
- 一个程序员的心声
- ExtJs.Store.load()各参数含义解析
- Android动画-旋转、平移、放缩和渐变
- 弹出时间选择器,来计算年龄
- 在ubantu14.04系统安装tensorflow
- 最详尽的 Swift 代码规范指南
- Java复习一
- Android Studio导出Jar包并混淆
- 图灵革命如何颠覆我们对世界的认知?
- 机器时代
- Nat类型检测