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,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值