动画 AnimationDrawable 帧动画

android 动画中的比较重要的一种动画就是帧动画,如名字所表达的意思就是把画面一帧一帧的放,有点类似电视播放画面那样。
下面是个用了两种形式实现了帧动画:

首先在xml中定义个ImageView。

 <ImageView
        android:id="@+id/loadingPic"
        android:layout_margin="10dp"
        android:layout_width="120dp"
        android:layout_height="120dp" />

然后再activity中绑定动画:

方法一,运用xml来做动画内容

  ImageView imageviewpic= (ImageView) findViewById(R.id.loadingPic);
        imageviewpic.setBackgroundResource(R.drawable.donghua);
        final AnimationDrawable animationDrawable= (AnimationDrawable) imageviewpic.getBackground();
        animationDrawable.start();

        imageviewpic.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (animationDrawable.isRunning()){
                    animationDrawable.stop();   //停止
                }else{
                    animationDrawable.start();  //开始
                }

            }
        });

其中的R.drawable.donghua 是个xml的drawable如下,android:oneshot=”false”时循环播放,为true时停在最后一帧。

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false" >
    <item android:drawable="@drawable/pic2" android:duration="100"></item>
    <item android:drawable="@drawable/pic3" android:duration="100"></item>
    <item android:drawable="@drawable/pic4" android:duration="100"></item>
    <item android:drawable="@drawable/pic5" android:duration="100"></item>
    <item android:drawable="@drawable/pic6" android:duration="100"></item>
    <item android:drawable="@drawable/pic7" android:duration="100"></item>
    <item android:drawable="@drawable/pic8" android:duration="100"></item>
    <item android:drawable="@drawable/pic9" android:duration="100"></item>
    <item android:drawable="@drawable/pic10" android:duration="100"></item>
    <item android:drawable="@drawable/pic11" android:duration="100"></item>
    <item android:drawable="@drawable/pic12" android:duration="100"></item>
    <item android:drawable="@drawable/pic13" android:duration="100"></item>
    <item android:drawable="@drawable/pic14" android:duration="100"></item>
</animation-list>

方法二.动态加入动画内容

  ImageView imageviewpic= (ImageView) findViewById(R.id.loadingPic);
        final AnimationDrawable animationDrawable= new AnimationDrawable();
        for(int i =2;i<15;i++){
            //第一个 就是我们的资源名称(图片名)
            //第二个 就是我们存放图片的文件夹drawable
            //第三个 包名也可以用Context的getPackageName返回应用程序的包名
            int id = getResources().getIdentifier( "pic"+i, "drawable",this.getPackageName());
            Log.d("ID:" + id);
            animationDrawable.addFrame(getResources().getDrawable(id), 200);
        }
        //设置手否重复播放,false为重复
        animationDrawable.setOneShot(false);
        imageviewpic.setImageDrawable(animationDrawable);
        imageviewpic.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (animationDrawable.isRunning()){
                    animationDrawable.stop();
                }else{
                    animationDrawable.start();
                }

            }
        });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值