Animaiton 的使用
来源:互联网 发布:风师弟不在我之下知乎 编辑:程序博客网 时间:2024/05/29 18:12
public class MainActivity extends Activity implements OnClickListener { /** * 定义四个按钮和一张图片 */ private ImageView imageView = null; private Button rotateButton = null; private Button scaleButton = null; private Button alphaButton = null; private Button translateButton = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); initView(); } /** * 初始化界面 */ public void initView() { imageView = (ImageView) findViewById(R.id.imageViewId); rotateButton = (Button) findViewById(R.id.rotateButtonId); translateButton = (Button) findViewById(R.id.translateButtonId); scaleButton = (Button) findViewById(R.id.scaleButtonId); alphaButton = (Button) findViewById(R.id.alphaButtonId); rotateButton.setOnClickListener(this); scaleButton.setOnClickListener(this); alphaButton.setOnClickListener(this); translateButton.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub int switchID = v.getId(); switch (switchID) { case R.id.alphaButtonId: { AnimationSet animationSet = new AnimationSet(true);//创建一个AnimationSet对象 AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);//创建一个AlphaAnimation对象 alphaAnimation.setDuration(1000);//设置动画执行的时间(单位:毫秒) animationSet.addAnimation(alphaAnimation);//将AlphaAnimation对象添加到AnimationSet当中 imageView.startAnimation(animationSet);//使用ImageView的startAnimation方法开始执行动画 break; } case R.id.rotateButtonId: { AnimationSet animationSet = new AnimationSet(true); /** * 前两个参数定义旋转的起始和结束的度数,后两个参数定义圆心的位置 */ RotateAnimation rotateAnimation = new RotateAnimation(0, 360, Animation.RELATIVE_TO_PARENT, 1f, Animation.RELATIVE_TO_PARENT, 0f); rotateAnimation.setDuration(5000); animationSet.addAnimation(rotateAnimation); imageView.startAnimation(animationSet); break; } case R.id.scaleButtonId: { 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); animationSet.addAnimation(scaleAnimation); animationSet.setStartOffset(1000); animationSet.setFillAfter(true); animationSet.setFillBefore(false); animationSet.setDuration(2000); imageView.startAnimation(animationSet); break; } case R.id.translateButtonId: { AnimationSet animationSet = new AnimationSet(true); /** * x和y轴的起始和结束位置 */ TranslateAnimation translateAnimation = new TranslateAnimation ( Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF,0.5f, Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF, 1.0f ); translateAnimation.setDuration(1000); animationSet.addAnimation(translateAnimation); imageView.startAnimation(animationSet); break; } } } }
Animation主要有四大属性,分别是淡入淡出,绕轴旋转,变化大小,位移变化,如图:
ANIMATION TYPE
ATTRIBUTE
VALID VALUES
Alpha
fromAlpha / toAlpha
Float from 0 to 1
Scale
fromXScale toXScale
Float from 0 to 1
fromYScale toYScale
Float from 0 to 1
pivotX pivotY
String of the percentage of graphic width height from 0% to 100%
Translate
FromX toX
Float from 0 to 1
fromY toY
Float from 0 to 1
Rotate
fromDegrees toDegrees
Float from 0 to 360
pivotX pivotY
String of the percentage of graphic width height from 0% to 100%
这些属性还有一些共同的方法:
1.setDuration(long durationMills)
设置动画持续时间(单位:毫秒)
2. setFillAfter(boolean fillAfter)
如果fillAfter的值为true,则动画执行后,控件将停留在控件结束的状态。
3. setFillBefore(Boolean fillBefore)
如果fillBefore的值为true,则动画执行后,控件将回到动画执行之前的状态。
4.setStartOffSet(long startOffSet)
设置动画执行之前的等待时间。
5.setRepeatCount(int repeatCount)
设置动画重复执行的次数。
- Animaiton 的使用
- Core Animaiton - 5
- Core Animaiton - 7
- Core Animaiton - 8
- GUID使用的使用
- ${}的使用
- 的使用
- @[],@()的使用
- ->的使用
- +、-、*、/、%的使用
- &&的使用
- %:的使用
- Makefile中使用$$的使用
- Makefile中使用$$的使用
- Red5的使用--使用日志
- prefernce的使用具体使用
- 【工具使用】git 的使用
- 关于使用AsyncTaskLoader的使用
- webservice使用示例
- STL学习笔记
- ext2.0 与3.0写法的差异
- hdu 2018 简单的凸包思想应用
- linux中gcc编程
- Animaiton 的使用
- 如何定义自己的异常类
- stdafx.h预编译头文件,在每个....cpp文件中都要在
- dialog的使用 包括FLAG_DIM_BEHIND 和dimAmount的使用
- 喜欢与爱情
- 【编程语言】Android--错误处理--工程文件导入时候出现乱码
- 我奋斗了18年才和你坐在一起喝咖啡
- 教务系统后台总结
- 嵌入式线程函数中如何对CEdit控件操作小结