Android:frameAnimation

简介:

一、通过xml文件设置

1.配置drawable里的xml文件

frameanim.xml代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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/background"  android:duration= "100" />
     <item android:drawable= "@drawable/poke_belly_right_0001"  android:duration= "100" />
     <item android:drawable= "@drawable/poke_belly_right_0002"  android:duration= "100" />
     <item android:drawable= "@drawable/poke_belly_right_0003"  android:duration= "100" />
     <item android:drawable= "@drawable/poke_belly_right_0004"  android:duration= "100" />
     <item android:drawable= "@drawable/poke_belly_right_0005"  android:duration= "100" />
     <item android:drawable= "@drawable/poke_belly_right_0006"  android:duration= "100" />
     <item android:drawable= "@drawable/poke_belly_right_0007"  android:duration= "100" />
     <item android:drawable= "@drawable/poke_belly_right_0008"  android:duration= "100" />
     <item android:drawable= "@drawable/background"  android:duration= "100" />
</animation-list>


2.为控件添加动画文件src

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<RelativeLayout xmlns:android= "http://schemas.android.com/apk/res/android"
     xmlns:tools= "http://schemas.android.com/tools"
     android:layout_width= "match_parent"
     android:layout_height= "match_parent"
     tools:context= ".MainActivity"  >
                                                   
     <ImageView
         android:id= "@+id/imageView1"
         android:layout_width= "wrap_content"
         android:layout_height= "wrap_content"
         android:layout_alignParentLeft= "true"
         android:layout_alignParentTop= "true"
         android:src= "@drawable/frameanim"  />
                                                   
</RelativeLayout>


3.代码里的实现方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@Override
protected  void  onCreate(Bundle savedInstanceState)
{
     super .onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
                            
     ImageView ivTom = (ImageView) findViewById(R.id.imageView1);
     final  AnimationDrawable drawable = (AnimationDrawable) ivTom.getDrawable(); //转换类型
     ivTom.setOnClickListener( new  OnClickListener()
     {
         @Override
         public  void  onClick(View v)
         {
             drawable.stop(); //每次播放前都先让动画恢复,否则播放一次后会停在最后一帧
             drawable.start();
         }
     });
}



其他写法:

1
2
3
4
5
6
7
iv.setBackgroundResource(R.drawable.anim); 
AnimationDrawable an=(AnimationDrawable)iv.getBackground(); 
an.start();
 
iv.setBackgroundResource(R.drawable.anim);
AnimationDrawable an=(AnimationDrawable)iv.getBackground();
an.start();





========================其他方法=====================

然后新建一个AnimationDrawable对象,把这些图片加载进去。 addFrame第一参数表示要加载的内容,第二参数表示持续时间。
代码:
1
2
3
4
5
6
7
8
1 .  frameAnimation =  new  AnimationDrawable(); 
2 .   for  ( int  i =  0 ; i <  10 ; i++) { 
3 .               int  id = getResources().getIdentifier( "load"  + (i+ 1 ),  "drawable" this .getContext().getPackageName()); 
4 .              frameAnimation.addFrame(getResources().getDrawable(id),  100 ); 
5 .          } 
6 .           
7 .           //设置循环播放   false表示循环  true表示不循环,仅播放一次 
8 .          frameAnimation.setOneShot( false );
AnimationDrawable 类是Drawable类的子类,因此可以将 AnimationDrawable  设为背景等来查看效果。
最后只要调用  frameAnimation.start();  就可以启动该Frame动画了。




本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1225369,如需转载请自行联系原作者
目录
相关文章
|
10天前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。