android与逐帧动画:

效果图:

当我们点击按钮时,该图片会不停的运动,当再次点击按钮时,会停止在当前的状态。

或者

一开始时,图片就会不停的运动.




activity代码:

package com.nj.test;import android.app.Activity;import android.graphics.drawable.AnimationDrawable;import android.os.Bundle;import android.view.View;import android.widget.ImageView;/** *  * @description android中的逐帧动画.  * 逐帧动画的原理很简单,跟电影的播放一样,一张张类似的图片不停的切换,当切换速度达到一定值时,  * 我们的视觉就会出现残影,残影的出现保证了视觉上变化的连续性,这时候图片的切换看在我们眼中就跟真实的一样了。  * 想使用逐帧动画:  * 第一步:需要在res/drawable文件夹下新建一个xml文件,该文件详细定义了动画播放时所用的图片、切换每张图片  *        所用的时间、是否为连续播放等等。(有些文章说,在res/anim文件夹下放置该文件,事实证明,会出错哦)  * 第二步:在代码中,将该动画布局文件,赋值给特定的图片展示控件,如本例子中的ImageView。  * 第三步:通过imageView.getBackGround()获取相应的AnimationDrawable对象,然后通过该对象的方法进行控制动画  */public class ExamplesActivity extends Activity {        private ImageView imageViewNumber,imageViewRole;      @Override      public void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.main);                    imageViewNumber = (ImageView) findViewById(R.id.imageView_animation1);          imageViewNumber.setBackgroundResource(R.drawable.number_animation_drawable);                  imageViewRole = (ImageView) findViewById(R.id.imageView_role);        imageViewRole.setBackgroundResource(R.drawable.role_animation_drawable);               }                  public void myClickHandler(View targetButton){          // 获取AnimationDrawable对象          AnimationDrawable animationDrawable = (AnimationDrawable)imageViewNumber.getBackground();                           AnimationDrawable animationDrawable2 = (AnimationDrawable)imageViewRole.getBackground();         // 动画是否正在运行          if(animationDrawable.isRunning()){              //停止动画播放              animationDrawable.stop();          }          else if(!animationDrawable.isRunning()){              //开始或者继续动画播放              animationDrawable.start();          }          // 动画是否正在运行          if(animationDrawable2.isRunning()){              //停止动画播放          animationDrawable2.stop();          }          else if(!animationDrawable2.isRunning()){              //开始或者继续动画播放          animationDrawable2.start();          }                          }         /***     * 一开始就运动     */    public void onWindowFocusChanged(boolean hasFocus) {    // 获取AnimationDrawable对象          AnimationDrawable animation1 = (AnimationDrawable)imageViewNumber.getBackground();        AnimationDrawable animation2 = (AnimationDrawable)imageViewRole.getBackground();    super.onWindowFocusChanged(hasFocus);    if(hasFocus){    animation1.start();    animation2.start();    }else{    animation1.stop();    animation2.stop();    }    }}

main.xml

<?xml version="1.0" encoding="utf-8"?>


number_animation_drawable.xml

<?xml version="1.0" encoding="utf-8"?>            


role_animation_drawable.xml

<?xml version="1.0" encoding="utf-8"?>        


资源下载地址:http://download.csdn.net/detail/niejing654092427/3880651



例子2:



第一步:先上图片素材,以下素材放到res/drawable目录下:

图片素材:

文件名称:

wifi1.png

wif2.png

wifi3.png

wifi4.png

wifi5.png


wifi6.png



第二步:上动画Animation-list帧布局文件,有2个,一个是按顺序显示动画,一个是倒序显示动画,文件存放在res/anim目录下

顺序显示动画文件:animation1.xml

<?xml version="1.0" encoding="utf-8"?>                                                

倒序显示动画文件:animation2.xml

<?xml version="1.0" encoding="utf-8"?>                                                

第三步:上布局文件,放在res/layout目录下,文件名activity_main.xml

<?xml version="1.0" encoding="utf-8"?>        

第四步:上Activity文件,文件名:MainActivity.java

package com.example.animation;import android.app.Activity;import android.graphics.drawable.AnimationDrawable;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.view.Window;import android.widget.Button;import android.widget.ImageView;public class MainActivity extends Activity{    private ImageView animationIV;    private Button buttonA, stopBtn, buttonC;    private AnimationDrawable animationDrawable;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.activity_main);                       animationIV = (ImageView) findViewById(R.id.animationIV);        buttonA = (Button) findViewById(R.id.one_btn);        stopBtn = (Button) findViewById(R.id.stop_btn);        buttonC = (Button) findViewById(R.id.two_btn);                buttonA.setOnClickListener(new OnClickListener()        {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                animationIV.setImageResource(R.drawable.animation1);                animationDrawable = (AnimationDrawable) animationIV.getDrawable();                animationDrawable.start();            }                    });                 stopBtn.setOnClickListener(new OnClickListener()        {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                animationDrawable = (AnimationDrawable) animationIV.getDrawable();                animationDrawable.stop();            }                    });                buttonC.setOnClickListener(new OnClickListener()        {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                animationIV.setImageResource(R.drawable.animation2);                animationDrawable = (AnimationDrawable) animationIV.getDrawable();                animationDrawable.start();            }                   });            }}


资源下载地址: http://download.csdn.net/detail/niejing654092427/5540011


更多相关文章

  1. Android 图片加水印
  2. Android gallery实现图片的左右循环旋转源码分享
  3. 通过 http post 方式上传多张图片
  4. Android application 和 activity 标签详解
  5. Android 上传图片到服务器(多文件上传)
  6. android zxing 解析二维码图片与生成二维码图片
  7. Android之glide加载图片圆角效果

随机推荐

  1. CF卡磁盘结构损坏怎么办 ,磁盘结构损坏的
  2. IIS7设置http跳转到https重定向的方法
  3. jQuery常用dom操作
  4. 邀请函制作,属于自己的邀请函,极速生成并随
  5. 如何充分利用小程序?
  6. 关于Go语言,你可能会讨厌的五件事
  7. 如何管理不同环境之间的发布版本?
  8. uni-app实战视频点播app小程序
  9. 如何修改 Pages 文稿中的段落样式?
  10. 使用腾讯云提供的针对Nuget包管理器的缓