Android-Animations的使用大全之二:Frame Animation和其他
2013-09-03 14:10
671 查看
Android-Animations的使用大全之一:Tweened Animations详解
5 Frame-By-Frame Animations的使用方
1 在res/drawable中创建一个xml文件,定义Animation的动画播放序列 anim_nv.xml
Xml代码
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/nv1"
android:duration="500" />
<item android:drawable="@drawable/nv2"
android:duration="500" />
<item android:drawable="@drawable/nv3"
android:duration="500" />
<item android:drawable="@drawable/nv4"
android:duration="500" />
</animation-list>
2 为ImageView设置背景资源
Java代码
imageView.setBackgroundResource(R.drawable.anim_nv);
3 通过ImageView得到AnimationDrawable
Java代码
AnimationDrawable animationDrawable = (AnimationDrawable) imageView.getBackground();
3 执行动画
Java代码
animationDrawable.start();
Frame-By-Frame Animations的代码使用方法
//实例化AnimationDrawable对象 frameAnimation = new AnimationDrawable(); /*装载资源*/ //这里用一个循环装载所有名字类似的资源 //如"a1...........15.png"的图片 for(int i = 1; i <= 15; i++){ int id = getResources().getIdentifier("a" + i, "drawable", mContext.getPackageName()); //此方法返回一个可绘制的对象与特定的资源ID相关联 mBitAnimation = getResources().getDrawable(id); /*为动画添加一帧*/ //参数mBitAnimation是该帧的图片 //参数500是该帧显示的时间,按毫秒计算 frameAnimation.addFrame(mBitAnimation, 500); } /*上边用到了Resources的getIdentifier方法 方法返回一个资源的唯一标识符,如果没有这个资源就返回0 * 0不是有效的标识符,在说说这个方法几个参数的含义 * 第一个 就是我们的资源名称了。 * 第二个 就是我们要去哪里找我们的资源 我们的图片在drawable 下 所以为drawable * 第三个 我们用了Context的getPackageName返回应用程序的包名 * */ //设置播放模式是否循环播放,false表示循环,true表示不循环 frameAnimation.setOneShot(false); //设置本类将要显示的这个动画 this.setBackgroundDrawable( frameAnimation );
6 LayoutAnimationController的使用方法(与ListView结合使用为例)
什么是LayoutAnimationController
1 LayoutAnimationController用于为一个layout里面的控件,或者是一个ViewGroup里面的控件设置动画效果
2 每一个控件都有相同的动画效果
3 这些控件的动画效果在不同的时间显示出来
4 LayoutAnimationController可以在xml文件中设置,也可以在代码中设置
在XML中使用LayoutAnimaionController
1 在res/anim文件夹中创建一个文件,名为list_anim_layout.xml
Xml代码
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
android:delay="0.5"
android:animationOrder="random"
android:animation="@anim/list_anim" />
注意到list_anim这个xml文件,其中配置了动画效果,也就是一个动画配置文件(见3中)
<set>
<alpha...>
</set>
2 在布局文件中为ListView添加如下配置(就是在<listview>标签中添加一个属性)
android:layoutAnimation="@anim/list_anim_layout"
在代码中使用LayoutAnimationController
Java代码
1 创建一个Animation对象:
可以通过装载xml,也可以直接使用Animation的构造函数创建Animation对象
2 创建LayoutAnimationController对象
LayoutAnimationController lac=new LayoutAnimationController(animation);
3 设置控件显示顺序
lac.setOrder(LayoutAnimationController.ORDER_NORMAL);
4 为ListView设置LayoutAnimationController属性:
listView.setLayoutAnimation(lac);
7 AnimationListener的使用方法
什么是AnimationListener
1 Animation是一个监听器
2 该监听器在动画执行的各个阶段会得到通知,从而调用相应的方法
3 主要包含下面的三个方法
onAnimationEnd(Animation animation)
onAnimationRepeat(Animation animation)
onAnimationStart(Animation animation)
使用方法:
animation.setAnimationListener(new XxxAnimationListener);
其中XxxAnimationListener继承AnimationListene
在其中实现三个onXXX方法
相关文章推荐
- Android-Animations的使用大全之二:Frame Animation和其他
- Android-Animations的使用大全之一:Tweened Animations详解
- Android-Animations的使用大全之一:Tweened Animations详解
- Android 指定Toast信息显示的位置并使用Toast显示其他View
- Android TextView结合SpannableString使用大全
- Android Animations之LayoutAnimationController的使用方法
- Android之Animations的使用
- Android之Animations的高级使用
- Android内存优化之二:MAT使用进阶
- 举例说明在android中使用正则表达式去掉字符串中标点符号及其他一些特殊符号的方法
- Android中shape的使用大全
- Android WebView系列文章3 WebView其他使用说明
- Android Animations动画使用详解
- 【Intent】Android系统Intent使用大全(持续更新中...)
- Android Animations动画使用详解
- Android Material Design新UI控件使用大全 三
- android开发(26) 和其他应用交换数据方式一,使用intent指定自定义action调用其他程序里的activity,并获得其返回的结果
- 通过ndk导出aar和so库文件供其他android项目使用
- Android零基础入门第23节:ImageButton和ZoomButton使用大全
- [置顶] Android之Notification使用大全