android小动画之Running Pig
Running Pig,顾名思义就是“奔跑的猪”,就是一个小猪从屏幕左边奔跑至右边(草坪),再从右边奔跑至左边,循环往复。
这是我之前在网上学习时学到的一个有趣的动画,写下来跟大家分享一下~:
首先要让小猪在草坪上奔跑,需要有草坪的图片,然后还要有小猪的图片:
将图片导入Demo中,要让小猪的腿动起来需要使用逐帧动画,而要让小猪奔跑进行位移的话则要使用补间动画。
1.首先定义逐帧动画的XML文件放置于drawable文件夹中,并设置每个静态画面对应的资源及时长:
pig_toleft.xml:
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@drawable/pig3" android:duration="50"/><item android:drawable="@drawable/pig4" android:duration="50"/> </animation-list>
pig_toright.xml:
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@drawable/pig1" android:duration="50"/><item android:drawable="@drawable/pig2" android:duration="50"/> </animation-list>
2.在布局文件中放置小猪图片资源,还有草坪图片作为背景颜色:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@mipmap/background" tools:context="com.shen.Running Pig.MainActivity"><ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/ivPig" android:layout_marginTop="200dp" android:background="@drawable/pig_toright"/></LinearLayout>
3.接着就是要让小猪跑动起来啦:
public class MainActivity extends AppCompatActivity {private ImageView ivPig;private TranslateAnimation toRightAnim;private TranslateAnimation toLeftAnim;private AnimationDrawable animationDrawable;@Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);
ivPig = (ImageView) findViewById(R.id.ivPig);
//让小猪的腿动起来animationDrawable = (AnimationDrawable) ivPig.getBackground();animationDrawable.start(); //向右平移的动画设置toRightAnim = new TranslateAnimation(0,1000,0,0);toRightAnim.setDuration(2000); //向左平移的动画设置toLeftAnim = new TranslateAnimation(1000,0,0,0);toLeftAnim.setDuration(2000); //监听小猪向右平移的动作toRightAnim.setAnimationListener(new Animation.AnimationListener() {@Override public void onAnimationStart(Animation animation) {} //当动画结束后自动触发该方法@Override public void onAnimationEnd(Animation animation) {
//当小猪向右平移结束后将小猪的方向转换成向左ivPig.setBackgroundResource(R.drawable.pig_toleft); //小猪的腿动起来animationDrawable.start(); //开始向左移动ivPig.startAnimation(toLeftAnim);}@Override public void onAnimationRepeat(Animation animation) {}}); //监听小猪向左平移的动作toLeftAnim.setAnimationListener(new Animation.AnimationListener() {@Override public void onAnimationStart(Animation animation) {}@Override public void onAnimationEnd(Animation animation) {
//在小猪向左平移结束后再将其方向转换成向右ivPig.setBackgroundResource(R.drawable.pig_toright);animationDrawable = (AnimationDrawable) ivPig.getBackground();animationDrawable.start();ivPig.startAnimation(toRightAnim);}@Override public void onAnimationRepeat(Animation animation) {}});ivPig.startAnimation(toRightAnim);} }
好啦,这样做好以后就可以看到小猪在草坪上左右左右来回跑动啦~
android小动画之Running Pig相关推荐
- android 图标弹跳动画,动效教程 | 5 分钟快速制作弹跳加载小动画
前言 今天墨染哥教你如何5分钟快速制作一个弹跳的加载小动画,如下图所示,这个小动画要快速做出来,需要解决解决两个技术难点,第一个是食物图标的弹跳,第二个是文本的弹跳. 食物图标的弹跳 话不多说,先看看 ...
- android 图标弹跳动画,动效教程 | 5 分钟快速做个弹跳加载小动画
小编:APP的动效现今是越来越重要了,以前是加分项,现在是必会技能-今天给大家带来的是AE动效教程 -- 5 分钟快速做个弹跳加载小动画,一起来学习学习吧-- 前言 哈喽,今天给大家解禁一个墨染动效特 ...
- Android自定义View:一个精致的打钩小动画
Github地址:TickView,一个精致的打钩小动画 github.com/ChengangFen- 1. 前言 最近在看轻芒杂志的时候,看到一个动画很带感很精致: 恰好这段时间也在看[HenCo ...
- android 三维动画效果,9款令人惊叹的HTML5 3D动画应用
原标题:9款令人惊叹的HTML5 3D动画应用 之前我们已经向大家分享了很多HTML5动画应用了,大部分都非常炫酷,也有一小部分是很实用的.今天我们要向各位HTML5动画爱好者介绍更多的HTML5 3 ...
- Android之动画精讲一:从setTranslationX谈属性动画和view动画的区别
转载:http://blog.csdn.net/yanzi1225627/article/details/47850471 最近又用到了动画,决定把几次项目里用到的动画走过的弯路总结一下,顺便梳理下a ...
- android logo:内核、android开机动画
android logo:内核.android开机动画 关键词:android 开机logo 开机动画 initlogo.rle bootanimation desc.txt 平台信息: 内核 ...
- android 点赞动画_Android MotionLayout动画:续写ConstraintLayout新篇章
本文作者 作者:新小梦 链接: https://juejin.im/post/6854573206653812743 本文由作者授权发布. 0概述 MotionLayout作为ConstraintLa ...
- android+属性动画+高度,android 自定义view+属性动画实现充电进度条
近期项目中需要使用到一种类似手机电池充电进度的动画效果,以前没学属性动画的时候,是用图片+定时器的方式来完成的,最近一直在学习动画这一块,再加上复习一下自定义view的相关知识点,所以打算用属性动画和 ...
- Android 开机动画(bootanimation)启动
Android 开机动画(bootanimation)启动 Android 开机动画启动 前言 一.简单的对话 二.过程 总结 前言 开机动画应该算是我接触的第一个AOSP的Native程序,网上讲解 ...
最新文章
- php和python哪个工资高-Java、Python、Php学哪个好,哪个更有前景?
- 静态反调试技术(3)
- boost::detail模块实现宏BOOST_DETAIL_IS_XXX_DEF的测试程序
- [Leedcode][JAVA][第136题][第137题][只出现一次的数字][位运算][HashSet][HashMap]
- h5 网站滚动到某个位置
- 基因表达热图聚类并增加行列注释
- 软考信息安全工程师备考笔记7:第七章信息系统安全工程备考要点
- tomcat 占用的内存越来越大_智能手机内存为什么越来越大 就这三点原因
- 中国宽带最新速率状况报告 你家达标了吗?
- 美团员工被指用钓鱼邮件获拼多多薪资;华为回应暂无其它手机厂商接入HarmonyOS;GCC 放弃版权转让政策|极客头条...
- matlab虚拟现实之V-Realm Builder2使用NavigationInfo精确定位、建模
- 如何成为一个架构师?
- 平面向量内积坐标公式推导_向量的数量积的坐标运算公式是如何推导出的 两个向量的向量积公式是怎...
- html 动态导航菜单,导航菜单,css3,javascript,响应式菜单,html,css
- 计算机组装维修diy,ITX装机教程实录:三千元ITX迷你电脑组装电脑全过程-DIY装机...
- 关于android某些手机java.lang.UnsatisfiedLinkError: No implementation found for ......的问题
- python中gzip库用法详解(压缩和解压缩)
- JS_画中画,video视频播放器
- 践行支付为民 线上支付开通ETC线上申卡、支付
- 企业微信给用户带来的是社交减负还会是社交焦虑?