已经过时的方法:

android studio会报错:

错误行:imageView.setBackgroundResource(R.anim.framebyframe);

错误为:expected resource of type

stackoverflow描述:http://stackoverflow.com/questions/24716385/android-studios-expected-resource-of-type-checks

错误原因;AS checks that someintparameters are not arbitrary integers, but rather have some properties.

新建一个framebyframe.xml文件

[java] view plain copy
  1. <animation-listxmlns:android="http://schemas.android.com/apk/res/android"
  2. android:oneshot="false">
  3. <itemandroid:drawable="@drawable/an01"android:duration="1000"/>
  4. <itemandroid:drawable="@drawable/an02"android:duration="1000"/>
  5. <itemandroid:drawable="@drawable/an03"android:duration="2000"/>
  6. </animation-list>
  7. <!--
  8. oneshot:是否只播放一遍动画true播放一遍false循环播放
  9. 默认就是false
  10. -->


下边 就是具体代码实现了:

[java] view plain copy
  1. publicclassSplashActivityextendsActivity{
  2. privateImageViewimageView;
  3. privateAnimationDrawableanimationDrawable;
  4. @Override
  5. protectedvoidonCreate(BundlesavedInstanceState){
  6. super.onCreate(savedInstanceState);
  7. setContentView(R.layout.activity_main);
  8. //帧动画
  9. imageView=(ImageView)findViewById(R.id.imageView1);
  10. //第一种方式实现动画
  11. /*animationDrawable=(AnimationDrawable)getResources().getDrawable(
  12. R.anim.framebyframe);
  13. imageView.setBackgroundDrawable(animationDrawable);*/
  14. //第二种方式实现动画
  15. imageView.setBackgroundResource(R.anim.framebyframe);
  16. animationDrawable=(AnimationDrawable)imageView.getBackground();
  17. animationDrawable.start();//开始
  18. //animationDrawable.setOneShot(false);是否循环播放
  19. //animationDrawable.stop();停止播放
  20. //animationDrawable.isRunning();//是否播放
  21. //animationDrawable.getNumberOfFrames();//播放帧
  22. //animationDrawable.getFrame(index);返回制定索引的Drawable对象
  23. //animationDrawable.getDuration(i);停留的时间
  24. //延迟三秒跳转
  25. newHandler(){
  26. publicvoidhandleMessage(android.os.Messagemsg){
  27. if(msg.what==1){
  28. //声明意图对象实现跳转
  29. Intentintent=newIntent(SplashActivity.this,
  30. MainActivity.class);
  31. startActivity(intent);
  32. }
  33. };
  34. }.sendEmptyMessageDelayed(1,3000);//三秒
  35. }
  36. /*@Override
  37. publicbooleanonTouchEvent(MotionEventevent){
  38. if(event.getAction()==MotionEvent.ACTION_DOWN){
  39. animationDrawable.start();
  40. returntrue;
  41. }
  42. returnsuper.onTouchEvent(event);
  43. }
  44. */
  45. }

正确方法:

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

http://blog.csdn.net/aminfo/article/details/7847761

图片素材:

文件名称:

icon1.png

icon2.png

icon3.png

icon4.png

icon5.png

icon6.png

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

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

[html] view plain copy
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <!--
  3. 根标签为animation-list,其中oneshot代表着是否只展示一遍,设置为false会不停的循环播放动画
  4. 根标签下,通过item标签对动画中的每一个图片进行声明
  5. android:duration表示展示所用的该图片的时间长度
  6. -->
  7. <animation-list
  8. xmlns:android="http://schemas.android.com/apk/res/android"
  9. android:oneshot="true"
  10. >
  11. <itemandroid:drawable="@drawable/icon1"android:duration="150"></item>
  12. <itemandroid:drawable="@drawable/icon2"android:duration="150"></item>
  13. <itemandroid:drawable="@drawable/icon3"android:duration="150"></item>
  14. <itemandroid:drawable="@drawable/icon4"android:duration="150"></item>
  15. <itemandroid:drawable="@drawable/icon5"android:duration="150"></item>
  16. <itemandroid:drawable="@drawable/icon6"android:duration="150"></item>
  17. </animation-list>


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

[html] view plain copy
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <!--
  3. 根标签为animation-list,其中oneshot代表着是否只展示一遍,设置为false会不停的循环播放动画
  4. 根标签下,通过item标签对动画中的每一个图片进行声明
  5. android:duration表示展示所用的该图片的时间长度
  6. -->
  7. <animation-list
  8. xmlns:android="http://schemas.android.com/apk/res/android"
  9. android:oneshot="true"
  10. >
  11. <itemandroid:drawable="@drawable/icon6"android:duration="150"></item>
  12. <itemandroid:drawable="@drawable/icon5"android:duration="150"></item>
  13. <itemandroid:drawable="@drawable/icon4"android:duration="150"></item>
  14. <itemandroid:drawable="@drawable/icon3"android:duration="150"></item>
  15. <itemandroid:drawable="@drawable/icon2"android:duration="150"></item>
  16. <itemandroid:drawable="@drawable/icon1"android:duration="150"></item>
  17. </animation-list>


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

[html] view plain copy
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical">
  6. <ImageViewandroid:id="@+id/animationIV"
  7. android:layout_width="wrap_content"
  8. android:layout_height="wrap_content"
  9. android:padding="5px"
  10. android:src="@drawable/animation1"/>
  11. <Buttonandroid:id="@+id/buttonA"
  12. android:layout_width="wrap_content"
  13. android:layout_height="wrap_content"
  14. android:padding="5px"
  15. android:text="顺序显示"/>
  16. <Buttonandroid:id="@+id/buttonB"
  17. android:layout_width="wrap_content"
  18. android:layout_height="wrap_content"
  19. android:padding="5px"
  20. android:text="停止"/>
  21. <Buttonandroid:id="@+id/buttonC"
  22. android:layout_width="wrap_content"
  23. android:layout_height="wrap_content"
  24. android:padding="5px"
  25. android:text="倒序显示"/>
  26. </LinearLayout>

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

[java] view plain copy
  1. packageorg.shuxiang.test;
  2. importandroid.app.Activity;
  3. importandroid.graphics.drawable.AnimationDrawable;
  4. importandroid.os.Bundle;
  5. importandroid.view.View;
  6. importandroid.view.View.OnClickListener;
  7. importandroid.view.Window;
  8. importandroid.widget.Button;
  9. importandroid.widget.ImageView;
  10. publicclassActivity10extendsActivity
  11. {
  12. privateImageViewanimationIV;
  13. privateButtonbuttonA,buttonB,buttonC;
  14. privateAnimationDrawableanimationDrawable;
  15. @Override
  16. publicvoidonCreate(BundlesavedInstanceState){
  17. super.onCreate(savedInstanceState);
  18. requestWindowFeature(Window.FEATURE_NO_TITLE);
  19. setContentView(R.layout.test10);
  20. animationIV=(ImageView)findViewById(R.id.animationIV);
  21. buttonA=(Button)findViewById(R.id.buttonA);
  22. buttonB=(Button)findViewById(R.id.buttonB);
  23. buttonC=(Button)findViewById(R.id.buttonC);
  24. buttonA.setOnClickListener(newOnClickListener()
  25. {
  26. @Override
  27. publicvoidonClick(Viewv){
  28. //TODOAuto-generatedmethodstub
  29. animationIV.setImageResource(R.drawable.animation1);
  30. animationDrawable=(AnimationDrawable)animationIV.getDrawable();
  31. animationDrawable.start();
  32. }
  33. });
  34. buttonB.setOnClickListener(newOnClickListener()
  35. {
  36. @Override
  37. publicvoidonClick(Viewv){
  38. //TODOAuto-generatedmethodstub
  39. animationDrawable=(AnimationDrawable)animationIV.getDrawable();
  40. animationDrawable.stop();
  41. }
  42. });
  43. buttonC.setOnClickListener(newOnClickListener()
  44. {
  45. @Override
  46. publicvoidonClick(Viewv){
  47. //TODOAuto-generatedmethodstub
  48. animationIV.setImageResource(R.drawable.animation2);
  49. animationDrawable=(AnimationDrawable)animationIV.getDrawable();
  50. animationDrawable.start();
  51. }
  52. });
  53. }
  54. }

更多相关文章

  1. [android]寫一個system/bin 下的可執行文件
  2. Android mediaScanner 删除U盘上的文件
  3. android tabHost布局之一 不继承TabActivity并以布局文件进行布
  4. Android踩坑——mkdir方法中返回false导致新建文件失败
  5. Android中在sdcard上创建文件夹
  6. android项目中的功能清单文件
  7. Android学习之保存Bitmap到指定文件夹
  8. Android中在sdcard上创建文件夹,注意加权限!!!!
  9. android,在文件中找一个String

随机推荐

  1. Android中实现对/system/bin/surfaceflin
  2. 《深入探索Android热修复原理》代码热修
  3. Android——layout_marginStart和layout_
  4. Android(安卓)Studio中使用.9(Nine Patch)
  5. android简单的颜色选择器制作
  6. Android(安卓)增强版百分比布局库 Eclips
  7. Android(安卓)Ap 开发 设计模式第三篇:模
  8. android 修改ramdisk.img和init.rc && an
  9. Android(安卓)绘图XML——Shape
  10. android 控件之ProgressBar实现双进度条(