补间动画和帧动画
来源:互联网 发布:泰达有线网络客服电话 编辑:程序博客网 时间:2024/05/29 04:18
1、Animations介绍
Android提供了几种动画类型:View Animation、Drawable Animation、Property Animation。View Animation相当简单,分别是Tween动画和Frame动画。Tween动画通过场景里的对象不断的进行图片的变化,比如平移、渐变、缩放、旋转等来产生动画效果;Frame动画叫做顺序播放实现做好的1图像和电影类似。另外加上gif动画,因为如果直接使用Bitmap或其他1方法直接调用gif图片资源的话,显示的是静态的,如果要做成动态的,就需要一些其他的方法来实现。
2、Tween动画
首先来谈谈Tween动画,它有四种:
1、Alpha:渐变透明度动画
2、Scale:渐变尺寸伸缩动画
3、Translate:动画转换位置位移动画
4、Rotate:画面转移旋转动画
这些动画的执行步骤都差不多:先定义Animation动画对象,然后设置动画1的一些属性,最后通过startAnimation()方法开始动画。
setDuration(long durationMillis)方法
功能:设置动画显示的时间
参数:durationMillis为动画显示时间的长短,以毫秒为单位。
startAnimation(Animation animation)方法
功能:开始播放动画
参数:animation为要播放的动画
第一种:Alpha (1)通过xml来新建动画alpha_anim.xml。在res/anim目录下
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha android:fromAlpha="0.1" android:toAlpha="1.0" android:duration="3000"/> </set>
加载动画资源文件
Animation alpha = AnimationUtils.loadAnimation(MainActivity.this,R.anim.alpha_anim);
(2)直接在程序中创建动画: 创建Alpha动画:
Animation alphaAnimations = new AlphaAnimation(0.0f,1.0f);
第二种:Scale
ScaleAnimation(float fromX,float toX,float fromY,float toY,int pivotType,float XValue,int pivotType,float pivotYValue)
功能:创建一个渐变尺寸伸缩动画 参数:fromX、toX分别是起始和结束时x坐标上的伸缩尺寸。fromY、toY分别是起始和结束时y坐标上的伸缩尺寸。pivotXValue、pivotYValue分别为伸缩动画相对于x,y坐标开始的位置(相当于图片右上角的位置),pivotXType、pivotYType分别为x、y的伸缩模式。
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <scale android:fromXScale="0.0" android:fromYScale="0.0" android:toXScale="1.0" android:toYScale="1.0" android:fillAfter="false" android:duration="3000" android:pivotX="50%" android:pivotY="50%"/> </set>
开始伸缩动画
Animation scale = AnimationUtils.loadAnimation(MainActivity.this,R.anim.scale_anim); ImageView iv = (ImageView) v; iv.startAnimation(scale);
第三种:Translate
TranslateAnimation(float fromXDelta,float toXDelta,float fromYDelta,float toYDelta)
功能:创建一个移动画面位置的动画 参数:fromXDelta、fromYDelta分别是开始坐标,toXDelta、toYDelta分别是结束坐标
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="3000" android:fromXDelta="0" android:fromYDelta="0" android:toXDelta="300" android:toYDelta="300"/> </set>
开始移动动画
Animation translate = AnimationUtils.loadAnimation(MainActivity.this,R.anim.translate_anim); ImageView iv = (ImageView) v; iv.startAnimation(translate);
第四种:Rotate
Rotate(float fromDegress,float toDegress,int pivotXType,float pivotXValue,int pivotYType,float pivotYValue)
功能:创建一个旋转画面的动画 参数:fromDegress为开始的角度,toDegress为结束的角度。pivotXTyp、pivotYType分别为x、y的伸缩模式,pivotXValue、pivotYValue分别为伸缩动画相对于x、y的坐标开始位置
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <rotate android:duration="3000" android:fromDegrees="0" android:toDegrees="360" android:pivotX="50%" android:pivotY="50%"/> </set>
3、Frame动画 Frame动画其实就是逐帧动画,用法也比Tween动画简单,只需要创建一个AnimationDrawable对象来表示Frame动画,然后通过addFrame方法把每一个帧要显示的内容加进去就行了,最后通过start方法就可以播放这个动画了,还可以通过使用setOneShot()方法来设置动画是否重复播放。在这里,还需要设置图片的所在位置,首先要在res/anim目录下创建一个xml配置文件。用来存放图片资源的索引配置的是一个以<animation-list>根元素和<item>子元素。
<?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true"> <item android:drawable="@drawable/list1" android:duration="300"/> <item android:drawable="@drawable/list2" android:duration="300"/> <item android:drawable="@drawable/list3" android:duration="300"/> </animation-list> 其中android:oneshot="true"表示这个动画只播放一次。 AnimationDrawable animationDrawable = (AnimationDrawable) imageView2.getDrawable(); animationDrawable.start(); animationDrawable.stop();
阅读全文
0 0
- 补间动画和逐帧动画
- 帧动画和补间动画
- 帧动画和补间动画
- 补间动画和帧动画
- Android -- Animation 动画效果, 帧动画 和 补间动画
- android动画解析 之补间动画和帧动画
- Android动画--帧动画和补间动画
- 帧动画,补间动画,和属性动画
- 补间动画,帧动画
- 补间动画,帧动画
- android动画 -- 帧动画 补间动画
- 属性动画,补间动画,帧动画
- Android动画-帧动画&补间动画
- 帧动画、补间动画、属性动画
- 帧动画&补间动画&属性动画
- 属性动画、帧动画、补间动画
- android的帧动画和补间动画总结
- 帧动画和补间动画看这篇足够了
- MYSQL学习笔记(二十二)管理事务处理
- Java多线程之线程状态案例
- STL set
- 实现一个shell提示语句
- Team Queue (优先对列的嵌套)
- 补间动画和帧动画
- netty学习二:基于socket通讯的小demo
- pandas
- 1155: 字符串比较 多实例
- NYOJ 21-三个水杯(BFS搜索)
- POJ1797Heavy Transportation 最短路变形
- android开发:安装搭建android开发环境
- CSU
- 02、Tensroflow简单例子