想做一个动画,一个会跑的小人,从屏幕右侧跑道右侧,于是做了个尝试,上图:

要完成这样需要三步:

1. 做一个 帧动画 (frame animation),由多张图片组成,组成小人连续跑动的样子。

2. 做一个 位移动画 使得小人 从左到右产生移动。

3. 在onStart里启动动画

下面分别解释:

---第一步------------------

准备多个动作的图片,写个xml animation :

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"android:oneshot="false" ><itemandroid:drawable="@drawable/loading_iv_00"android:duration="60"></item><itemandroid:drawable="@drawable/loading_iv_01"android:duration="60"></item><itemandroid:drawable="@drawable/loading_iv_02"android:duration="60"></item><itemandroid:drawable="@drawable/loading_iv_03"android:duration="60"></item><itemandroid:drawable="@drawable/loading_iv_04"android:duration="60"></item><itemandroid:drawable="@drawable/loading_iv_05"android:duration="60"></item><itemandroid:drawable="@drawable/loading_iv_06"android:duration="60"></item><itemandroid:drawable="@drawable/loading_iv_07"android:duration="60"></item><itemandroid:drawable="@drawable/loading_iv_08"android:duration="60"></item><itemandroid:drawable="@drawable/loading_iv_09"android:duration="60"></item><itemandroid:drawable="@drawable/loading_iv_10"android:duration="60"></item></animation-list>

代码:

    @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);imageView1 = (ImageView) findViewById(R.id.imageView1);imageView1.setImageResource(R.anim.loading);imageView1.setVisibility(View.GONE);mAnimationDrawable = (AnimationDrawable) imageView1.getDrawable();mAnimationDrawable.setOneShot(false);}

---第二步-----------------------

写 位移动画 的代码:

 Animation translate = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, -0.2f,Animation.RELATIVE_TO_PARENT, 1, Animation.RELATIVE_TO_SELF, 0,Animation.RELATIVE_TO_SELF, 0);translate.setDuration(3000);translate.setRepeatCount(Animation.INFINITE);

这句话的意思时,相对于 父容器 的x坐标移动,y轴不改变,一直循环

---第三步--------------------------

启动动画即可,贴完整代码:

package com.example.demo_run;import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.View;
import android.view.ViewTreeObserver;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.ImageView;public class MainActivity extends Activity {ImageView imageView1;AnimationDrawable mAnimationDrawable;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);imageView1 = (ImageView) findViewById(R.id.imageView1);imageView1.setImageResource(R.anim.loading);imageView1.setVisibility(View.GONE);mAnimationDrawable = (AnimationDrawable) imageView1.getDrawable();mAnimationDrawable.setOneShot(false);}@Overrideprotected void onStart() {startAnimation();super.onStart();}private void startAnimation() {mAnimationDrawable.start();Animation translate = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, -0.2f,Animation.RELATIVE_TO_PARENT, 1, Animation.RELATIVE_TO_SELF, 0,Animation.RELATIVE_TO_SELF, 0);translate.setDuration(3000);translate.setRepeatCount(Animation.INFINITE);imageView1.startAnimation(translate);imageView1.setVisibility(View.VISIBLE);}
}

页面布局:

<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"android:background="#3F99C3"tools:context=".MainActivity" ><ImageViewandroid:id="@+id/imageView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:layout_alignParentLeft="true" /></RelativeLayout>

---最后-------------------

演示代码下载。

android开发(43) 动画演示,会跑的小人,从屏幕左侧跑到右侧相关推荐

  1. Android10打断动画,Android开发(10) 动画(Animation)

    概述 Android SDK介绍了两种Animation: Tween Animation:通过对场景里的对象不断做图像变换(平移.缩放.旋转)产生动画效果,即是一种 渐变动画 ,或者说 补间动画. ...

  2. android 登陆界面动画,【Android开发】动画登录页面

    心得感悟 这个Demo对我还是比较有难度的,花了好久去理解.因为动画比较有趣,所以想自己改改样式,也有助于自己的理解.这是进入Android开发学习第六天了,每天的学习都是懂了很多,却还有很多不懂,还 ...

  3. [android开发]Animation动画的实现

    Animations 一.Animations介绍 Animations是一个实现android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行旋转.缩放.淡入淡出等, ...

  4. Android开发中EditText获得焦点弹出输入框改变屏幕布局的问题

    在Android开发中,比较头疼的问题就是EditText总是已启动就获得焦点并弹出输入框,感觉很是不爽.而且,因为输入框的弹出,导致屏幕布局获得改变,有些空间被挤压到一起,很是难看,所以,我就上网搜 ...

  5. Android开发中App演示Gif效果动画的制作过程详讲

    相信大家在做好App时,都想录制一段Gif动态效果.但可能苦于不知如何去实现,或者没有比较好的软件去实现.今天我给大家来详细的讲下整个过程=================== 首先,需要录制好一段视 ...

  6. android属性动画作用范围,Android开发之动画效果浅析(一)

    程序运行效果图: Android动画主要包含补间动画(Tween)View Animation.帧动画(Frame)Drawable Animation.以及属性动画Property Animatio ...

  7. android开发 鱼动画,自定义Drawable实现灵动的红鲤鱼动画(上篇)

    此篇中的小鱼动画是模仿国外一个大牛做的flash动画,第一眼就爱上它了,简约灵动又不失美学,于是抽空试着尝试了一下,如下是我用Android实现的效果图: 小鱼儿 由于整个绘制分析过程比较繁琐所以灵动 ...

  8. android开发之动画的详解 整理资料 Android开发程序小冰整理

    2019独角兽企业重金招聘Python工程师标准>>> /** * 作者:David Zheng on 2015/11/7 15:38 * *  网站:http://www.93se ...

  9. Android开发之动画(转)

    activity跳转的过渡效果,很漂亮,很全 注意,切换方法overridePendingTransition只能在startActivity和finish方法之后调用. 第一个参数为第一个Activ ...

最新文章

  1. Apache Mina开发手册
  2. Ubuntu16.04 64位系统下安装百度云管家
  3. Spring依赖注入的模式和类型
  4. android 定时关机 app,定时关机X下载-定时关机X(强制关机)下载v1.1 安卓版-西西软件下载...
  5. Java -jar与-class反编译工具procyon-decompiler的下载与使用
  6. python爬取酷狗音乐付费音乐包_一篇文章教会你使用Python网络爬虫下载酷狗音乐...
  7. vim如何修改只读文件
  8. echarts 立体柱状图(多个柱状图)
  9. JFS及JFS2文件系统
  10. 用C语言判断输入年份是否为闰年
  11. github上传文件出错
  12. Android返回键
  13. 电容笔和触控笔哪个好?平板电脑好用电容笔推荐
  14. 一份百投百中的计算机校招简历
  15. 2017-11-11 今天的工作任务
  16. 超详细的Python安装和环境搭建教程(2022)
  17. springboot使用ajax上传文件
  18. Git - Cloning Specific Commits 使用git clone指定的commit
  19. 数据泵实践 ## 用户
  20. 负债累累怎样白手起家?

热门文章

  1. 关于人工智能,你知道怎么学吗
  2. 野火stm32mini第⑤章----------------中断
  3. 计算机专业屏幕尺寸,电脑屏幕尺寸怎么看
  4. Linux中CentOS 7如何联网?
  5. 天池-金融风控训练营-task2-数据分析
  6. ubuntu安装手柄驱动玩游戏
  7. mmdetection里的image_demo
  8. 《Effective C++》-第一章-让自己习惯C++
  9. 浅谈git rebase和git checkout --ours(theirs)
  10. 深度学习之---loss等于87.336